如何解析C#程序集并提取每个方法

5 c# methods code-analysis assemblies static-code-analysis

对于我的应用程序,我想解析一个程序集并提取每个方法,并将方法的名称和源代码存储在我的一个对象中(我在我的代码中定义).

我应该在哪里开始实施?

编辑:从答案和评论我看到从程序集中获取源代码并不是那么容易.那么如果我想从当前解决方案中不存在的源代码文件中获取源代码(visual studio),我应该从哪里开始?

Mar*_*ell 20

程序集不包含源代码.您可能能够提取IL,但没有像反射器或ildasm这样的工具,这些工具并不是特别有用.

要获取方法名称,请执行以下操作:

    var assembly = Assembly.GetExecutingAssembly();
    var names = (from type in assembly.GetTypes()
                 from method in type.GetMethods(
                   BindingFlags.Public | BindingFlags.NonPublic |
                   BindingFlags.Instance | BindingFlags.Static)
                 select type.FullName + ":" + method.Name).Distinct().ToList();
Run Code Online (Sandbox Code Playgroud)

  • +1 - 这是使用编译语言的基础. (2认同)