Я знаю, что это был старый вопрос, но я хотел бы дать ответ. IKVM.Reflection.Emit
API был изобретен, когда его автор устал от System.Reflection.Emit
и Cecil.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 и Сесил имеют сходную функциональность, и IKVM.Reflection API должен быть быстрее во многих отношениях.
До сих пор вы все еще можете видеть, что Cecil широко используется во многих утилитах (таких как Obfuscar, инструмент обфускации, который я поддерживаю). IKVM.Reflection в основном используется в компиляторе Mono C# и сам IKVM, и я не уверен, есть ли в нем другие проекты (но их должно быть много).