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