从汇编中获取 MSIL?

发布于 2024-10-14 06:26:15 字数 200 浏览 2 评论 0原文

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

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

Is it possible to usefully extract MSIL from an Assembly object without loading the type information?

I have a simple application that takes a string and attempts to dynamically create a method for making very fast calculations, but I want to avoid loading assembly/type information by using the CodeCompileUnit to compile a C# code string, extract the MSIL from the compiled assembly, and emitting the MSIL into a DynamicMethod. If this is possible.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

江湖正好 2024-10-21 06:26:15

看一下 Mono.Cecil 它可以帮助您读取/修改/创建程序集而不加载它们。

Have a look at Mono.Cecil which helps you to read/modify/create assembly without loading them.

睫毛上残留的泪 2024-10-21 06:26:15

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

The only way to get MSIL is to call MethodBase.GetMethodBody Method. But it requires loading of type first.

盛夏尉蓝 2024-10-21 06:26:15

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

Use System.Reflection.Emit directly. For dynamic methods you don't even need a type.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文