104
Chương 3: Miền ứng dụng, cơ chế phản chiếu, và siêu dữ liệu
việc giải phóng miền ứng dụng, ngoại lệ
System.CannotUnloadAppDomainException
sẽ bị ném
bởi tiểu trình thực hiện quá trình giải phóng.
Trong khi miền ứng dụng đang được giải phóng, CLR gọi thực thi các phương thức giải phóng
của tất cả các đối tượng trong miền ứng dụng. Tùy thuộc vào số lượng đối tượng và bản chất
của các phương thức giải phóng mà quá trình này có thể mất một khoảng thời gian nào đó.
Phương thức
AppDomain.IsFinalizingForUnload
trả về
true
nếu miền ứng dụng đang được
giải phóng và CLR đã bắt đầu giải phóng các đối tượng trong đó; ngược lại, trả về
false
.
10.
10.
Truy xu t thông tin Type
ấ
Truy xu t thông tin Type
ấ
Bạn muốn thu lấy đối tượng
System.Type
mô tả một kiểu dữ liệu nhất định.
Sử dụng một trong các cách sau:
•
Toán tử
typeof
•
Phương thức tĩnh
GetType
của lớp
System.Type
•
Phương thức
GetType
thuộc một thể hiện của kiểu
•
Phương thức
GetNestedType
hay
GetNestedTypes
của lớp
Type
•
Phương thức
GetType
hay
GetTypes
của lớp
Assembly
•
Phương thức
GetType
,
GetTypes
, hay
FindTypes
của lớp
System.Reflection.
Module
Đối tượng
Type
cung cấp một điểm khởi đầu để làm việc với các kiểu dữ liệu bằng cơ chế
phản chiếu. Một đối tượng
Type
cho phép bạn kiểm tra siêu dữ liệu của kiểu, thu lấy các thành
viên của kiểu, và tạo các đối tượng của kiểu. Do tầm quan trọng của nó, .NET Framework
cung cấp nhiều cơ chế để lấy tham chiếu đến các đối tượng
Type
.
Phương pháp hiệu quả nhất để thu lấy đối tượng
Type
cho một kiểu cụ thể là sử dụng toán tử
typeof
:
System.Type t1 = typeof(System.Text.StringBuilder);
Tên kiểu không được đặt trong dấu nháy kép và phai kha phân giai đôi với trình biên dịch. Vì
tham chiếu được phân giải lúc biên dịch nên assembly chứa kiểu này trở thành phần phụ thuộc
tĩnh cua assembly và sẽ được liệt kê như thế trong assembly manifest của bạn.
Một cách khác là sử dụng phương thức tĩnh
Type.GetType
, nhận vào một chuỗi chứa tên kiểu.
Vì sử dụng chuỗi để chỉ định kiểu nên bạn có thể thay đổi nó lúc thực thi, điều này mở ra cánh
cửa đến với thế giới lập trình động bằng cơ chế phản chiếu (xem mục 3.12). Nếu bạn chỉ định
tên kiểu, bộ thực thi phải tìm kiểu này trong một assembly đã được nạp. Bạn cũng có thể chỉ
định một tên kiểu theo tiêu chuân assembly (tham khảo tài liệu .NET Framework SDK về
phương thức
Type.GetType
để biết cách kết cấu tên kiểu theo tiêu chuân assembly). Các lệnh
sau trình bày cách sử dụng phương thức
GetType
:
// Có phân biệt chữ hoa-thường, trả về null nếu không tìm thấy.
Type t2 = Type.GetType("System.String");