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

93

Chương 3: Miền ứng dụng, cơ chế phản chiếu, và siêu dữ liệu

Một

System.Reflection.AssemblyName

mô tả chi tiết về assembly.

Một mảng byte chứa dữ liệu câu thành assembly.

Thông thường, tên của assembly được sử dụng để nạp assembly. Tên đầy đủ của một
assembly bao gồm: tên, phiên bản, ban đia, và token khóa công khai, được phân cách bởi dấu
phẩy (ví dụ:

System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=

b77a5c561934e089

). Để chỉ định một assembly không có tên mạnh, sử dụng

PublicKeyToken=null

. Bạn cũng có thể sử dụng tên ngắn để nhận dạng một assembly nhưng ít

nhất phải cung cấp tên của assembly (không có phần mở rộng). Đoạn mã dưới đây trình bày
các cách sử dụng phương thức

Load

:

// Nạp assembly System.Data dùng tên đầy đủ.

string name1 = "System.Data,Version=1.0.5000.0," +

"Culture=neutral,PublicKeyToken=b77a5c561934e089";

Assembly a1 = Assembly.Load(name1);

// Nạp assembly System.Xml dùng AssemblyName.

AssemblyName name2 = new AssemblyName();

name2.Name = "System.Xml";

name2.Version = new Version(1,0,5000,0);

name2.CultureInfo = new CultureInfo("");

name2.SetPublicKeyToken(

new byte[] {0xb7,0x7a,0x5c,0x56,0x19,0x34,0xe0,0x89});

Assembly a2 = Assembly.Load(name2);

// Nạp assembly SomeAssembly dùng tên ngắn.

Assembly a3 = Assembly.Load("SomeAssembly");

Khi phương thức

Load

được gọi, bộ thực thi thực hiện quá trình định vị và nạp assembly. Dưới

đây sẽ tóm tắt quá trình này; bạn tham khảo tài liệu .NET Framework SDK để biết thêm chi
tiết.

1. Nếu bạn chỉ định assembly tên mạnh, phương thức

Load

sẽ áp dụng version policy

(chính sách phiên bản) và publisher policy (chính sách nhà phát hành) để cho phep kha
năng “chuyên tiếp” (redirect) đến môt phiên ban assembly khác. Version policy được
chỉ định trong file cấu hình máy tính hay ứng dụng của bạn bằng phần tử

<bindingRedirect>

. Publisher policy được chỉ định trong các assembly đăc biêt được

cài đặt bên trong GAC (Global Assembly Cache).

2. Một khi đã xác định đúng phiên bản của assembly cần sử dụng, bộ thực thi sẽ cố gắng

nạp các assembly tên mạnh từ GAC.

3. Nếu assembly không có tên mạnh hoặc không được tìm thấy trong GAC, bộ thực thi sẽ

tìm phần tử

<codeBase>

trong các file cấu hình máy tính và ứng dụng. Phần tử

<codeBase>

ánh xạ tên của assembly thành một file hay một URL. Nếu assembly có tên

mạnh,

<codeBase>

có thể chỉ đến bất kỳ vị trí nào kể cả các URL dựa-trên-Internet; nếu

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.