我正在编写一个相当简单的代码生成工具,并且我需要能够将 MSIL(或 MethodInfo)对象转换为其 C# 源代码。我意识到 Reflector 在这方面做得很好,但它具有令人讨厌的“特性”,即仅作为 UI。
我知道我可以直接生成 C# 字符串,使用 string.Format 插入变量部分,但我真的更希望能够以编程方式生成方法(例如委托或 MethodInfo 对象),然后将这些方法传递给编写器这会将它们转换为 C#。
系统库使得在运行时从 C# 源代码字符串到编译(和可执行)方法变得如此容易,但从对象到源代码却不可能——即使是简单的事情,这似乎有点愚蠢。
有任何想法吗?