2015-01-11 3 views
-5

Я хочу создать динамический метод с кодом, который немного больше, чем тривиальный.System.Reflection.Emit :: DynamicMethod: Есть ли инструмент для создания кода IL из существующей сборки?

Так что я хочу создать жестко закодированную версию тела метода и иметь скомпилированную версию, которую он изучил каким-то инструментом, возвращающим OpCos и параметрами для меня, поэтому я могу вставить их с помощью ILGenerator::Emit().

Есть ли такой инструмент? (Может быть, это глупый вопрос. Я не мог найти его с помощью Google.)

+0

Не используйте 'DyanmicMethod', затем. Идите по обычным маршрутам через 'MethodBuilder'. – leppie

+0

Спасибо за помощь. Но похоже, что использование метода MethodBuilder вместо DynamicMethod не помогает мне создавать IL-код. – AxD

+0

Я не понимаю, что вы имеете в виду. – leppie

ответ

1

Ваш вопрос довольно расплывчатый, поэтому я могу дать вам лишь смутный ответ: попробуйте Mono Cecil. Это позволяет вам проверять IL в существующей сборке и изменять ее, что близко к тому, что вы просите.

+0

Спасибо. Я нашел раздел в разделе HowTo, который, кажется, делает трюк. Я попробую. БЛАГОДАРЯ! – AxD