Vla*_*lad 11 .net reflection 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.Emit
和时发明的Cecil.Reflection.Emit
。为了让IKVMC编译器更快,他从头开始设计这个新的API。
历史可以从以下博客文章中找到,
2008 年 8 月 从 Microsoft .NET 反射切换到 Cecil
2008 年 11 月 从 Cecil 切换到 IKVM.Reflection.Emit
所以一般来说 IKVM.Reflection 和 Cecil 具有类似的功能,并且 IKVM.Reflection API 在很多方面应该更快。
到目前为止,您仍然可以看到 Cecil 广泛应用于许多实用程序中(例如 Obfuscar,我正在维护的混淆工具)。IKVM.Reflection 主要用于 Mono C# 编译器和 IKVM 本身,我不确定是否有其他项目使用它(但应该很多)。
归档时间: |
|
查看次数: |
415 次 |
最近记录: |