原文見<http://www.codeproject.com/Articles/8832/Plug-in-Manager>
AssemblyFactory
用 System.CodeDom.Compiler 將 .cs , .vb 和 .js 編譯成組件
RemoteLoader
為了讓物件可跨越應用程式定義域界限存取, 必須繼承 MarshalByRefObject.
此類主要目的是儲存 assembly 與 type 清單. 透過以下方式
1. Assembly.Load( dll 檔案 )
2. AssemblyFactory 的 CreateAssembly
LocalLoader
1. 建立新的 AppDomain.
2. 讓新的 AppDomain 建立 RemoteLoader.
這樣可讓透過 appdomain 取的的 class 都會用 RemoteLoader 代理取得.
3. LocalLoader 會負責一個目錄下的 dll 組件的載入
PluginManager
目的在管理一個 LocalLoader
如果一個 AP 希望掛載不同功能的組件。那需要建立對應的目錄並建立對應的 PluginManager
文章標籤
全站熱搜
