目前,我正在開發一個.NET愛好項目,該項目涉及與彼此組合的對象的複雜系統。但是,我遇到了一個小問題,我無法在.NET中找到支持在運行時替換代碼的機制,並且能夠處理先前加載的舊代碼。這意味着動態地替換模塊/對象,並且幾乎立即向用戶顯示更改,例如,當他重新啓動一個過程時,而不是整個程序。.NET中的模塊化系統可以在運行時進行更改
我已經考慮過爲每個會話單獨設置AppDomain
並將必要的程序集加載到其中的可能性,但這看起來有點太昂貴。我還應該提到,每個會話都從一個常見的程序集基礎中受益,例如,連接到數據庫,這意味着將這些類加載到每個會話中。來自單獨的AppDomain
來回編組數據還表示額外開銷(可以在數據通過網絡發送到客戶端應用程序時使用,代碼爲管理會話的主要AppDomain
中包含的代碼)。
是否有一個框架或方法來取代/卸載特定部分的代碼?它如何在現實世界的應用程序中完成?有沒有解決方法?或者我選擇了一套錯誤的工具?
我認爲'MEF'是一個選項,但我必須再次自己做'AppDomain'管理。 – ax1mx2 2014-09-10 14:18:00