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)