101
Chương 3: Miền ứng dụng, cơ chế phản chiếu, và siêu dữ liệu
// Tạo một ListDictionary chứa các plug-in.
ListDictionary pluginList = new ListDictionary();
pluginList["SimplePlugin"] = "CreateInstanceExample";
// Tạo một PluginManager trong miền ứng dụng mới
// và chỉ định danh sách các plug-in.
PluginManager manager2 =
(PluginManager)domain1.CreateInstanceAndUnwrap(
"CreateInstanceExample", "PluginManager", true, 0,
null, new object[] {pluginList}, null, null, null);
// Hiển thị các plug-in đã được nạp vào NewAppDomain2.
Console.WriteLine("Plugins in NewAppDomain2:");
foreach (string s in manager2.GetPluginList()) {
Console.WriteLine(" - " + s);
}
// Nhấn Enter để thoát.
Console.ReadLine();
}
}
8.
8.
Truy n d li u gi a các mi n ng d ng
ề ữ ệ ữ
ề ứ
ụ
Truy n d li u gi a các mi n ng d ng
ề ữ ệ
ữ
ề ứ
ụ
Bạn cần một cơ chế đơn giản để truyền dữ liệu trạng thái hay cấu hình giữa các
miền ứng dụng.
Dùng các phương thức
SetData
và
GetData
của lớp
AppDomain
.
Dữ liệu có thể được truyền qua các miền ứng dụng như đối số hay trị trả về khi bạn cho gọi
các thành viên của các đối tượng hiện có trong các miền ứng dụng. Việc truyền dữ liệu qua
các miền ứng dụng được thực hiện dễ dàng giống như truyền dữ liệu trong cùng một miền ứng
dụng.
Mọi miền ứng dụng đều duy trì một vung đệm dữ liệu (data cache) chứa một tập các cặp
“tên/giá trị”. Hầu hết nội dung của vung đệm dữ liệu phản ánh các thiết lập cấu hình của miền
ứng dụng, như các giá trị từ đối tượng
AppDomainSetup
được cung cấp trong quá trình tạo
miền ứng dụng (xem mục 3.1). Vung đệm dữ liệu này có thể được sử dụng để trao đổi dữ liệu
giữa các miền ứng dụng hay lưu trữ các giá trị tạm thời dùng trong cùng một miền ứng dụng.
Phương thức
SetData
thực hiện việc kết hợp một khóa dạng chuỗi với một đối tượng và lưu
trữ nó vào vùng đệm dữ liệu của miền ứng dụng. Phương thức
GetData
thực hiện công việc
ngược lại là lấy lại đối tượng từ vùng đệm dữ liệu thông qua khóa. Nếu mã lệnh trong một