IKVM 之间的区别.Reflection.Emit 和 Mono.Cecil



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 年 8 月 从 Microsoft .NET 反射切换到 Cecil

2008年11月 从塞西尔切换到IKVM。反射.发出

2010年1月宣布IKVM。反射

所以一般来说,IKVM。Reflection和Cecil具有类似的功能,IKVM。反射 API 应该在很多方面更快。

到目前为止,您仍然可以看到Cecil广泛用于许多实用程序(例如Obfuscar,我正在维护的混淆工具(。伊克姆。反射主要用于 Mono C# 编译器和 IKVM 本身,我不确定是否有其他项目使用它(但应该很多(。

最新更新