110
Chương 3: Miền ứng dụng, cơ chế phản chiếu, và siêu dữ liệu
string pluginName, string description) {
// Thu lấy đối tượng Type cho plug-in được chỉ định.
Type type = Type.GetType(pluginName + ", " + assembly);
// Thu lấy đối tượng ConstructorInfo.
ConstructorInfo cInfo = type.GetConstructor(Type.EmptyTypes);
// Tạo đối tượng và ép nó về kiểu StringBuilder.
IPlugin plugin = (IPlugin)cInfo.Invoke(null);
// Cấu hình IPlugin mới.
plugin.Description = description;
return plugin;
}
}
Câu lệnh sau đây sẽ tạo đối tượng
SimplePlugin
bằng lớp
PluginFactory
:
IPlugin plugin = PluginFactory.CreatePlugin(
"CreateObjectExample", // Tên assembly
"SimplePlugin", // Tên lớp plug-in
"A Simple Plugin" // Lời mô tả plug-in
);
Lớp
System.Activator
cung cấp hai phương thức tĩnh
CreateInstance
và
CreateInstanceFrom
dùng để tạo các đối tượng dựa trên đối tượng
Type
hay chuỗi
chứa tên kiểu. Xem tài liệu .NET Framework SDK để biết thêm chi tiết.
13.
13.
T o m t đ c tính tùy bi n
ạ ộ ặ
ế
T o m t đ c tính tùy bi n
ạ ộ ặ
ế
Bạn cần tạo ra một đặc tính theo ý bạn.
Tạo một lớp dẫn xuất từ lớp cơ sở trừu tượng
System.Attribute
. Hiện thực các
phương thức khởi dựng, các trường, và các thuộc tính để cho phép người dùng
cấu hình đặc tính. Sử dụng
System.AttributeUsageAttribute
để định nghĩa:
•
Những phần tử chương trình nào là đích của đặc tính
•
Bạn có thể áp dụng nhiều thể hiện của đặc tính cho một phần tử chương
trình hay không