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

开发 后端
本文介绍了如何通过C#反射特性查看自定义特性。利用反射来查看自定义特性信息与查看其他信息类似。

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

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组件
责任编辑:book05 来源: cnblogs
相关推荐

2009-08-04 08:58:01

C#自定义特性

2021-03-29 00:02:10

C#Attribute元素

2016-10-13 13:33:41

反射特性c#

2009-08-03 13:39:46

C#自定义用户控件

2009-08-03 13:34:06

自定义C#控件

2009-08-28 17:45:19

C#自定义数据

2009-09-03 15:46:57

C#自定义事件

2009-08-04 08:48:44

C#内置特性

2009-08-04 12:40:34

c#自定义事件

2009-08-12 14:53:50

C#类型转换函数

2020-04-30 21:40:14

C#特性编程语言

2009-08-04 12:56:51

C#自定义事件

2009-08-04 09:56:46

C#事件处理自定义事件

2021-06-17 06:52:37

C#自定义异常

2009-08-05 17:03:37

C#自定义控件

2009-08-19 16:50:32

Visual C#C#语言特性

2009-08-26 17:10:09

C# 3.5新特性

2009-08-26 16:01:37

C#特性

2009-08-04 13:07:46

C#自定义快捷键

2009-08-17 17:24:02

C#自定义消息框
点赞
收藏

51CTO技术栈公众号