2015-10-21 40 views
11

arasındaki fark IKVM.Reflection.Emit, .NET 1.1, .NET 2.0 ve .NET 4.0 derlemeleri okuma ve yayımlama yeteneğine sahiptir (örneğin, .NET 2.0 üzerinde çalışırken)). ".IKVM.Reflection.Emit ve Mono.Cecil

Mono.Cecil'in aynısı var mı? Bu kullanım durumu için değiş tokuş edilebilir mi? Bugünlerde ikisi de destekleniyor mu? Aralarındaki temel farklar nelerdir (IL yayarak)?

cevap

1

Bunun eski bir soru olduğunu biliyorum, ama bir cevap vermek istiyorum. Yazarı, System.Reflection.Emit ve Cecil.Reflection.Emit'dan yorulduğunda, IKVM.Reflection.Emit API icat edildi. IKVMC derleyicisini daha hızlı hale getirmek için bu yeni API'yi tasarlamak için sıfırdan çalıştı.

tarih, aşağıdaki blog yazılarındaki

2008 Aug Switch from Microsoft .NET reflection to Cecil

2008 Nov Switch from Cecil to IKVM.Reflection.Emit

2010 Jan Announce IKVM.Reflection

Yani genel olarak IKVM.Reflection ve Cecil benzer işlevleri vardır konuşma ve IKVM.Reflection bulunabilir API birçok yönden daha hızlı olmalıdır.

Artık, Cecil'in birçok yardımcı programda yaygın olarak kullanıldığını görebilirsiniz (Obfuscar, sürdürdüğüm bir gizleme aracı gibi). IKVM.Reflection temel olarak Mono C# derleyicisi ve IKVM'nin kendisinde kullanılır ve bunu kullanan başka projeler olup olmadığından emin değilim (ancak çok olması gerekir).