2

是否可以在不加载类型信息的情况下从 Assembly 对象中有效地提取 MSIL?

我有一个简单的应用程序,它接受一个字符串并尝试动态创建一种方法来进行非常快速的计算,但我想通过使用CodeCompileUnit编译 C# 代码字符串、从编译的程序集中提取 MSIL 来避免加载程序集/类型信息,并将 MSIL 发射到 DynamicMethod 中。如果这是可能的。

4

3 回答 3

2

看看Mono.Cecil,它可以帮助您在不加载它们的情况下阅读/修改/创建程序集。

于 2011-01-27T12:02:45.397 回答
1

获得 MSIL 的唯一方法是调用MethodBase.GetMethodBody Method。但它需要先加载类型。

于 2011-01-27T12:03:11.197 回答
1

直接使用System.Reflection.Emit。对于动态方法,您甚至不需要类型。

于 2011-01-27T12:04:40.840 回答