Question: I was wondering how can I find all the names of functions that are in the program?
Any built in method for this?
Or any hint to how can I find?
*stack trace* or something like that?

Answer: 
```
var allMethods = typeof(AnyClass).Assembly
                                 .GetTypes()
                                 .SelectMany(type => type.GetMethods());

var allMethodNames = allMethods.Select(method => method.Name);

Console.WriteLine( string.Join(Environment.NewLine, allMethodNames) );

```

In order to inspect many assemblies, use next code:

```
Assembly[] assembliesToInspect = {
                                    typeof(AnyClass).Assembly, 
                                    typeof(ClassFromAnotherAssembly).Assembly
                                 };

var allMethods = assembliesToInspect.SelectMany(assembly => assembly.GetTypes())
                                    .SelectMany(type => type.GetMethods());     

```
You can use [reflection](http://msdn.microsoft.com/en-us/library/ms173183.aspx) to open your program or dll and enumerate all types and for each type enumerate all their public methods.