2010-06-09 7 views

ответ

1

Я не думаю, что вы можете это сделать. Но вы можете создавать новые классы в новой сборке в памяти, используя Reflection.Emit.

Это много работы. Вы можете получить помощь от фреймворка, такого как Castle DynamicProxy, который позволяет создавать прокси для ваших классов во время выполнения. Таким образом, вы можете запустить любой код до или после запуска исходных методов или полностью изменить методы, не вызвав оригинальный метод.

3

Вы можете использовать Mono Cecil, чтобы изменить сборку перед ее загрузкой.

Вы можете сохранить измененную сборку в массив байтов, затем вызвать Assembly.Load для загрузки массива байтов.

+0

Я бы предпочел не использовать сторонние библиотеки –

+4

ОК, затем сдавайся или перепишите Моно Сесил с нуля. Альтернативы нет. – SLaks

Смежные вопросы