2010-06-09 114 views

回答

1

我不認爲你可以做到這一點。但是您可以使用Reflection.Emit在新內存程序集中生成新類。

雖然這是很多工作。您可以從框架(如Castle DynamicProxy)獲得幫助,該框架允許您在運行時爲您的類生成代理。這樣,您可以在原始方法運行之前或之後運行任何代碼,或者通過不調用原始方法來完全更改方法。

3

在加載之前,您可以使用Mono Cecil來修改程序集。

您可以將修改後的程序集保存到字節數組,然後調用Assembly.Load來加載字節數組。

+0

我寧可不使用第三方庫 – 2010-06-09 17:45:50

+4

好的,然後放棄,或從頭開始重寫Mono Cecil。沒有替代。 – SLaks 2010-06-09 17:59:16