CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 100

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");