Ищу способ манипулировать .Net CIL во время выполнения

В Java мы использовали аргумент javaagent и утилиты ASM (http://asm.ow2.org/) для изменения байтового кода во время выполнения / загрузки в памяти загрузчиком классов. (также известный как динамическое добавление вызова метода к методу класса).

Один из примеров этого - удаление всех вызовов Log4j для ускорения работы приложения (http://surguy.net/ article / remove-log-messages.xml).

Я пытаюсь понять, как выполнить тот же процесс во время выполнения с помощью C # / .Net. Я видел, что вы можете управлять CIL для .Net, но я не нашел примера этого во время выполнения.

System.Reflection.Emit кажется ближайшим .Net equitant, где вы можете динамически создавать классы, но есть ли способ добавить или переопределить существующие классы с помощью этого?

6
задан James 28 April 2011 в 17:11
поделиться