反射(Reflection) 对象用于在运行时获取类型信息。该类位于 System.Reflection 命名空间中,可访问一个正在运行的程序的元数据。
System.Reflection 命名空间包含了允许您获取有关应用程序信息及向应用程序动态添加类型、值和对象的类。
反射(Reflection)有下列用途:
1.用反射获取类的自定义属性
using System; using System.Linq; namespace ReflectionPractice { [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)] public class HelpAttribute : Attribute { public HelpAttribute(){} public HelpAttribute(String Description_in) { this.description = Description_in; } protected String description; public String Description { get { return this.description; } } } [Help("this is a HelpAttribute use class")] public class UseHelpAttribute { } public class UseHelpAttributeDerive : UseHelpAttribute { } class Program { public static void Main(string[] args) { // TODO: Implement Functionality Here //用反射获取类自定义特性 System.Reflection.MemberInfo info = typeof(UseHelpAttributeDerive); object[] attributes = info.GetCustomAttributes(true); for(int i = 0; i < attributes.Length; i++) { Console.WriteLine(attributes[i]); } Console.ReadKey(true); } } }
运行结果: