我目前正在使用编译器(转换器?)从methbases到使用ILSpy的C#表达式树。我遇到的一般问题是将System.Reflection.MethodBases链接到ILSpy输出的NRefactory AST中正确的methodDeclarations。
我很清楚ILSpy能够为整个程序集提供AST,例如:
AssemblyDefinition pAssembly = AssemblyDefinition.ReadAssembly(filename, parameters);
AstBuilder pDecompiler = new AstBuilder(new DecompilerContext(pAssembly.MainModule));
pDecompiler.AddAssembly(pAssembly);
pDecompiler.RunTransformations();
ast = pDecompiler.SyntaxTree;
但是,是否可以调用ILSpy获取一小段IL,例如您可以通过调用获取:
m.GetMethodBody().GetILAsByteArray()
这样可以很容易地解决方法库配对问题,目前我有一个非常可怕的解决方案。