88
Chương 3: Miền ứng dụng, cơ chế phản chiếu, và siêu dữ liệu
ức mạnh và tính linh hoạt của Microsoft .NET Framework được nâng cao bởi khả năng
kiểm tra và thao tác các kiểu và siêu dữ liệu lúc thực thi. Các mục trong chương này sẽ
trình bày các khía cạnh thông dụng của miền ứng dụng (application domain), cơ chế
phản chiếu (reflection), và siêu dữ liệu (metadata), bao gồm:
S
Tạo và hủy các miền ứng dụng (mục 3.1 và 3.9).
Làm việc với các kiểu và các đối tượng khi sử dụng nhiều miền ứng dụng (mục 3.2,
3.3, 3.4, và 3.8).
Làm việc với thông tin
Type
(mục 3.10 và 3.11).
Tạo động các đối tượng và nạp động các assembly lúc thực thi (mục 3.5, 3.6, 3.7, và
3.12).
Tạo và kiểm tra các đặc tính tùy biến (các mục 3.13 và 3.14).
1.
1.
T o mi n ng d ng
ạ
ề ứ
ụ
T o mi n ng d ng
ạ
ề ứ
ụ
Bạn cần tạo một miền ứng dụng mới.
Sử dụng phương thức tĩnh
CreateDomain
của lớp
System.AppDomain
.
Dạng thức đơn giản nhất của phương thức
CreateDomain
nhận một đối số kiểu
string
chỉ định
tên thân thiện cho miền ứng dụng mới. Các dạng thức khác cho phép bạn chỉ định chứng cứ
(evidence) và các thiết lập cấu hình cho miền ứng dụng mới. Chứng cứ được chỉ định bằng đối
tượng
System.Security.Policy.Evidence
; mục 13.11 trình bày các tác động của chứng cứ khi
bạn tạo một miền ứng dụng. Các thiết lập cấu hình được chỉ định bằng đối tượng
System.AppDomainSetup
.
Lớp
AppDomainSetup
chứa các thông tin cấu hình cho một miền ứng dụng. Bảng 3.1 kiệt kê
các thuộc tính thường được sử dụng nhất của lớp
AppDomainSetup
khi tạo các miền ứng dụng.
Các thuộc tính này có thể được truy xuất sau khi tạo thông qua các thành viên của đối tượng
AppDomain
, và một số có thể thay đổi lúc thực thi; bạn hãy tham khảo tài liệu .NET
Framework SDK về lớp
AppDomain
để hiểu chi tiết hơn.
Bảng 3.1 Các thuộc tính thông dụng của lớp AppDomainSetup
Thuộc tính
Mô tả
ApplicationBase
Thư mục mà CRL sẽ xét trong quá trình dò tìm các assembly
riêng. Kỹ thuật dò tìm (probing) sẽ được thảo luận trong mục
3.5. Thực tế,
ApplicationBase
là thư mục gốc cho ứng dụng
đang thực thi. Theo mặc định, đây là thư mục chứa assembly.
Có thể đọc được thuộc tính này sau khi tạo miền ứng dụng
bằng thuộc tính
AppDomain.BaseDirectory
.