102
Chương 3: Miền ứng dụng, cơ chế phản chiếu, và siêu dữ liệu
miền ứng dụng gọi phương thức
SetData
hay
GetData
để truy xuất vung đệm dữ liệu của miền
ứng dụng khác, thì đối tượng dữ liệu phải hỗ trợ ngữ nghĩa marshal-by-value hay marshal-by-
reference, nếu không thì ngoại lệ
System.Runtime.Serialization.SerializationException
sẽ bị ném (xem mục 3.3 để biết thêm chi tiết về cách truyền đối tượng qua các miền ứng
dụng). Đoạn mã sau trình bày cách sử dụng phương thức
SetData
và
GetData
để truyền một
System.Collections.ArrayList
giữa hai miền ứng dụng.
using System;
using System.Reflection;
using System.Collections;
public class ListModifier {
public ListModifier () {
// Nhận danh sách từ đệm dữ liệu.
ArrayList list =
(ArrayList)AppDomain.CurrentDomain.GetData("People");
// Thay đổi danh sách.
list.Add("Tam");
}
}
public class PassDataExample {
public static void Main() {
// Tạo một miền ứng dụng mới.
AppDomain domain = AppDomain.CreateDomain("Test");
// Tạo một ArrayList và thêm thông tin vào.
ArrayList list = new ArrayList();
list.Add("Phuong");
list.Add("Phong");
list.Add("Nam");
// Đặt danh sách vào vùng đệm dữ liệu của miền ứng dụng mới.
domain.SetData("People", list);