通过C#反射特性查看自定义特性

利用C#反射来查看自定义特性信息与查看其他信息类似,首先基于类型(本例中是DemoClass)获取一个Type对象,然后调用Type对象的GetCustomAttributes()方法,获取应用于该类型上的特性。当指定GetCustomAttributes(Type attributeType, bool inherit) 中的***个参数attributeType时,将只返回指定类型的特性,否则将返回全部特性;第二个参数指定是否搜索该成员的继承链以查找这些属性。

成都创新互联公司专业为企业提供双牌网站建设、双牌做网站、双牌网站设计、双牌网站制作等企业网站建设、网页设计与制作、双牌企业网站模板建站服务,10多年双牌做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

C#反射:代码

 
 
 
  1. class Program {     
  2.     static void Main(string[] args) {     
  3.        Type t = typeof(DemoClass);     
  4.        Console.WriteLine("下面列出应用于 {0} 的RecordAttribute属性:" , t);     
  5.     
  6.        // 获取所有的RecordAttributes特性     
  7.        object[] records = t.GetCustomAttributes(typeof(RecordAttribute), false);     
  8.     
  9.        foreach (RecordAttribute record in records) {     
  10.            Console.WriteLine("   {0}", record);     
  11.            Console.WriteLine("      类型:{0}", record.RecordType);     
  12.            Console.WriteLine("      作者:{0}", record.Author);     
  13.            Console.WriteLine("      日期:{0}", record.Date.ToShortDateString());     
  14.            if(!String.IsNullOrEmpty(record.Memo)){     
  15.               Console.WriteLine("      备注:{0}",record.Memo);     
  16.            }     
  17.        }     
  18.     }     
  19. }    

输出为:

下面列出应用于 AttributeDemo.DemoClass 的RecordAttribute属性:

   AttributeDemo.RecordAttribute

      类型:更新

      作者:Matthew

      日期:2008-1-20

      备注:修改 ToString()方法

   AttributeDemo.RecordAttribute

      类型:更新

      作者:Jimmy

      日期:2008-1-18

   AttributeDemo.RecordAttribute

      类型:创建

      作者:张子阳

      日期:2008-1-15

好了,到了这一步,我想将这些数据录入数据库中将不再是个问题,我们关于C#反射查看自定义特性的章节也就到此为止了。

【编辑推荐】

  1. C#基础知识一览
  2. 学习C#自定义用户控件
  3. C#自定义组件和用户组件属性的设置
  4. C#编程中的组件-事件-委托
  5. Visual C#自定义组件的设计:Pop3Com组件

本文标题:通过C#反射特性查看自定义特性
网址分享:http://www.mswzjz.cn/qtweb/news30/242480.html

攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能