close
原文見<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
全站熱搜