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

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

利用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);     
           }     
       }     
    }     
}    
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 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-04 08:48:44

C#内置特性

2009-08-19 16:50:32

Visual C#C#语言特性

2020-04-30 21:40:14

C#特性编程语言

2009-08-26 16:01:37

C#特性

2009-08-26 17:10:09

C# 3.5新特性

2009-09-03 15:46:57

C#自定义事件

2009-08-03 13:34:06

自定义C#控件

2009-08-28 17:45:19

C#自定义数据

2009-08-03 13:39:46

C#自定义用户控件

2009-09-18 15:53:37

C# 3.0新语言特性

2009-09-17 16:34:24

C#组件类

2009-08-27 16:24:48

扩展方法C# 3.0新特性

2009-09-18 09:59:39

C# CLR

2009-08-19 16:51:14

C# 4.0 dyna

2009-08-04 12:56:51

C#自定义事件

2009-08-04 09:56:46

C#事件处理自定义事件

2021-06-17 06:52:37

C#自定义异常
点赞
收藏

51CTO技术栈公众号