Есть ли хорошая обертка вокруг ILGenerator? [закрыто]

м с помощью System.Reflection.Emit некоторое время сейчас, и найти его (кто нет?) так же больно, как склонный к ошибкам.

Знаете ли вы, есть ли хорошая оболочка вокруг Генератора IL, на которую я могу положиться, чтобы излучать IL более безопасным и простым способом, чем при игре напрямую с SRE?

Редактировать:

Я знаю, что манипулирование деревьями выражений определенно проще и безопаснее, чем прямое излучение IL, но они также имеют некоторые ограничения прямо сейчас. Я могу'• создавать блоки кода, использовать циклы, объявлять и работать с несколькими локальными пользователями и т. д. Нам нужно подождать, пока выйдет .NET 4 :)

Кроме того, яЯ имею дело с базой кода, которая уже опирается на SRE.

Очевидно, что ILGenerator делает все, что мне нужно. Но я был бы признателен за большую помощь при манипулировании им. Когда я'Ссылаясь на обертку ILGenerator, которая остается на довольно низком уровне, я думаю о чем-то, что могло бы обеспечить такие методы, как:

// Performs a virtual or direct call on the method, depending if it is a 
// virtual or a static one.
Call(MethodInfo methodInfo)

// Pushes the default value of the type on the stack, then emit 
// the Ret opcode.
ReturnDefault(Type type)

// Test the object type to emit the corresponding push 
// opcode (Ldstr, Ldc_I*, Ldc_R*, etc.)
LoadConstant(object o)

Это'Это действительно 3 наивных примера, но этого может быть достаточно, чтобы продемонстрировать, чего я ожидаю. Мы можем видеть это как набор методов расширения, но было бы неплохо иметь поддержку условных операторов и циклов, как вRunSharp, На самом деле, RunSharp довольно близок к тому, что я хочу, но он абстрагирует ILGenerator слишком много и нет выставить всю свою функциональность.

Я могу'не помню где, но я уже видел такого помощника в проекте с открытым исходным кодом.

Ответы на вопрос(3)

Ваш ответ на вопрос