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

标签 c# methods assemblies code-analysis static-code-analysis

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

我应该从哪里开始实现?

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

最佳答案

程序集不包含源代码。您也许能够提取 IL,但如果没有 reflector 或 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();

关于c# - 如何解析 C# 程序集并提取每个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4207867/

相关文章:

.net - .NET Reflector 指令的命名空间

c# - 接口(interface)的 XML 序列化

c# - WPF MVVM : EventTrigger is not working inside CheckBox

c# - 如何在 C# 中调用事件方法?

java - 如何在另一种方法中使用一种方法的 "return"值

java - 创建一个使用给定参数创建数组的方法?

c# - ObjectContext 实例已被释放,不能再用于需要连接的操作

ruby-on-rails - Rails - 变量作为方法名称的一部分

c# - 如何修补 .NET 程序集?

maven-2 - Maven 程序集插件