黑马程序员技术交流社区

标题: C#反射一般都什么时候用 [打印本页]

作者: 董振海    时间: 2012-10-11 17:51
标题: C#反射一般都什么时候用
关于反射 我不是太理解, 一般都在什么情况下用到?
作者: 管海鹏    时间: 2012-10-12 06:13
反射一般和特性一块使用。具体用在哪里?
利用C#反射来查看自定义特性信息与查看其他信息类似,首先基于类型(本例中是DemoClass)获取一个Type对象,然后调用Type对象的GetCustomAttributes()方法,获取应用于该类型上的特性。当指定GetCustomAttributes(Type attributeType, bool inherit) 中的第一个参数attributeType时,将只返回指定类型的特性,否则将返回全部特性;第二个参数指定是否搜索该成员的继承链以查找这些属性。

C#反射:代码

class Program {     
    static void Main(string[] args) {     
       Type t = typeof(DemoClass);     
       Console.WriteLine("下面列出应用于 {0} 的RecordAttribute属性:" , t);     
   
       // 获取所有的RecordAttributes特性     
       object[] records = t.GetCustomAttributes(typeof(RecordAttribute), false);     
   
       foreach (RecordAttribute record in records) {     
           Console.WriteLine("   {0}", record);     
           Console.WriteLine("      类型:{0}", record.RecordType);     
           Console.WriteLine("      作者:{0}", record.Author);     
           Console.WriteLine("      日期:{0}", record.Date.ToShortDateString());     
           if(!String.IsNullOrEmpty(record.Memo)){     
              Console.WriteLine("      备注:{0}",record.Memo);     
           }     
       }     
    }     
}   
作者: 董振海    时间: 2012-10-12 09:28
管海鹏 发表于 2012-10-12 06:13
反射一般和特性一块使用。具体用在哪里?
利用C#反射来查看自定义特性信息与查看其他信息类似,首先基于类 ...

谢谢~ 自己还得在好好研究下, 感觉我在 反射和委托这里比较弱...:(
作者: servant4335    时间: 2012-10-12 10:37
写插件、写底层用到抽象工厂的时候会用到




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2