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

98
Chương 3: Miền ứng dụng, cơ chế phản chiếu, và siêu dữ liệu

Console.WriteLine(AppDomain.CurrentDomain.FriendlyName +

": SimplePlugin stopping...");

}

}

// Lớp điều khiển, quản lý việc nạp và thao tác

// các plug-in trong miền ứng dụng của nó.

public class PluginManager : MarshalByRefObject {

// ListDictionary giữ tham chiếu đến các plug-in.

private ListDictionary plugins = new ListDictionary();

// Phương thức khởi dựng mặc định.

public PluginManager() {}

// Phương thức khởi dựng nhận danh sách các plug-in.

public PluginManager(ListDictionary pluginList) {

// Nạp các plug-in đã được chỉ định.

foreach (string plugin in pluginList.Keys) {

this.LoadPlugin((string)pluginList[plugin], plugin);

}

}

// Nạp assembly và tạo plug-in được chỉ định.

public bool LoadPlugin(string assemblyName, string pluginName) {

try {

// Nạp assembly.

Assembly assembly = Assembly.Load(assemblyName);

// Tạo plug-in mới.

IPlugin plugin =