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

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

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

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.