100
Chương 3: Miền ứng dụng, cơ chế phản chiếu, và siêu dữ liệu
public void StopPlugin(string plugin) {
// Lấy một plug-in từ ListDictionary và
// gọi phương thức Stop.
((IPlugin)plugins[plugin]).Stop();
}
public ArrayList GetPluginList() {
// Trả về danh sách các plug-in.
return new ArrayList(plugins.Keys);
}
}
public class CreateInstanceExample {
public static void Main() {
// Tạo một miền ứng dụng mới.
AppDomain domain1 = AppDomain.CreateDomain("NewAppDomain1");
// Tạo một PluginManager trong miền ứng dụng mới
// bằng phương thức khởi dựng mặc định.
PluginManager manager1 =
(PluginManager)domain1.CreateInstanceAndUnwrap(
"CreateInstanceExample", "PluginManager");
// Nạp một plug-in mới vào NewAppDomain1.
manager1.LoadPlugin("CreateInstanceExample", "SimplePlugin");
// Chạy và dừng plug-in trong NewAppDomain1.
manager1.StartPlugin("SimplePlugin");
manager1.StopPlugin("SimplePlugin");
// Tạo một miền ứng dụng mới.
AppDomain domain2 = AppDomain.CreateDomain("NewAppDomain2");