3

我目前正在研究从 methbases 到使用 ILSpy 的 C# 表达式树的编译器(转译器?)。我遇到的一般问题是将 System.Reflection.MethodBases 链接到 ILSpy 输出的 NRefactory AST 中的正确方法声明。

我很清楚 ILSpy 能够为整个程序集提供 AST,例如:

            AssemblyDefinition pAssembly = AssemblyDefinition.ReadAssembly(filename, parameters);
            AstBuilder pDecompiler = new AstBuilder(new DecompilerContext(pAssembly.MainModule));

            pDecompiler.AddAssembly(pAssembly);
            pDecompiler.RunTransformations();
            ast = pDecompiler.SyntaxTree;

但是,是否可以为一小段 IL 调用 ILSpy,例如您可以通过调用获得:

m.GetMethodBody().GetILAsByteArray()

这将使解决方法库配对问题变得非常容易,我目前有一个非常可怕的解决方案。

4

0 回答 0