gpt4 book ai didi

.net - IKVM.Reflection.Emit 和 Mono.Cecil 的区别

转载 作者:行者123 更新时间:2023-12-04 02:26:11 26 4
gpt4 key购买 nike

IKVM.Reflection.Emit 具有“读取和发出 .NET 1.1、.NET 2.0 和 .NET 4.0 程序集的能力(例如,在 .NET 2.0 上运行时)”。

Mono.Cecil 也一样吗?对于这个用例,它们是否可以互换?他们现在都支持吗?它们之间的主要区别是什么(在发出 IL 方面)?

最佳答案

我知道这是一个老问题,但我想提供一个答案。 IKVM.Reflection.Emit API 是在作者厌倦时发明的 System.Reflection.EmitCecil.Reflection.Emit .为了让 IKVMC 编译器更快,他从头开始设计这个新的 API。

历史可以从以下博客文章中找到,

2008 Aug Switch from Microsoft .NET reflection to Cecil

2008 Nov Switch from Cecil to IKVM.Reflection.Emit

2010 Jan Announce IKVM.Reflection

所以一般来说IKVM.Reflection和Cecil的功能差不多,IKVM.Reflection API在很多方面应该更快。

到现在你仍然可以看到 Cecil 在很多实用程序中得到了广泛的应用(比如 Obfuscar,我正在维护的一个混淆工具)。 IKVM.Reflection主要用在Mono C#编译器和IKVM本身,不知道有没有其他项目在用(但应该很多)。

关于.net - IKVM.Reflection.Emit 和 Mono.Cecil 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33258188/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com