วัตถุสะท้อนใช้สำหรับรับข้อมูลประเภทที่รันไทม์ คลาสที่ให้การเข้าถึงข้อมูลเมตาของโปรแกรมที่กำลังทำงานอยู่ในเนมสเปซ System.Reflection
ต่อไปนี้คือการใช้งานของ Reflections -
-
อนุญาตให้ดูข้อมูลแอตทริบิวต์ที่รันไทม์
-
อนุญาตให้ตรวจสอบประเภทต่าง ๆ ในแอสเซมบลีและยกตัวอย่างประเภทเหล่านี้
-
อนุญาตให้ผูกกับเมธอดและคุณสมบัติล่าช้า
-
อนุญาตให้สร้างประเภทใหม่ที่รันไทม์แล้วทำงานบางอย่างโดยใช้ประเภทเหล่านั้น
เรามาดูตัวอย่างกัน −
ตัวอย่าง
using System;
[AttributeUsage(AttributeTargets.All)]
public class HelpAttribute : System.Attribute {
public readonly string Url;
public string Topic // Topic is a named parameter {
get {
return topic;
}
set {
topic = value;
}
}
public HelpAttribute(string url) // url is a positional parameter {
this.Url = url;
}
private string topic;
}
[HelpAttribute("Information on the class MyClass")]
class MyClass {
}
namespace AttributeAppl {
class Program {
static void Main(string[] args) {
System.Reflection.MemberInfo info = typeof(MyClass);
object[] attributes = info.GetCustomAttributes(true);
for (int i = 0; i < attributes.Length; i++) {
System.Console.WriteLine(attributes[i]);
}
Console.ReadKey();
}
}
}