C#之特性(Attribute)

Posted 漏沟子一脚

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#之特性(Attribute)相关的知识,希望对你有一定的参考价值。

注:以下内容均摘自网络,并做修改

MSDN:使用特性,可以有效地将元数据或声明性信息与代码(程序集、类型、方法、属性等)相关联。 将特性与程序实体相关联后,可以在运行时使用反射这项技术查询特性。


特性具有以下属性:

  • 特性向程序添加元数据。 元数据是程序中定义的类型的相关信息。 所有 .NET 程序集都包含一组指定的元数据,用于描述程序集中定义的类型和类型成员。 可以添加自定义特性来指定所需的其他任何信息。

  • 可以将一个或多个特性应用于整个程序集、模块或较小的程序元素(如类和属性)。

  • 特性可以像方法和属性一样接受自变量。

  • 程序可使用反射来检查自己的元数据或其他程序中的元数据。 


首先,C#的元数据,就是“描述数据类型的数据”。元数据描述了 数据类型的 类名 、公共方法...等等关于数据类型的信息。

C#有两种途径可以获取元数据,两种途径都返回一个Type类型的对象:

途径一:typeof(类型名称);

途径二:对象.GetType();


运转的系统就像一个盒子,而元数据就像是这个盒子的规格说明书。系统可接受的输入,内部的结构和处理的方式,最终得到的输出,这些要素之间的内在逻辑关系对用户来说通常是复杂而难以理解的。规格说明书,是在不影响原有系统功能前提下,提供给用户认识系统的重要资料。

元数据都由编译器自动生成。按照定义的方式,Attribute可以分为两种,一种是原生Attribute,即语言和框架内置的。另一种是自定义Attribute,是用户根据需要自己定义的(需要继承自System.Attribute)。原生Attribute由CLR(Common Language Runtime)使用,自定义Attribute必须由用户自己写处理逻辑。


实例:



以上是关于C#之特性(Attribute)的主要内容,如果未能解决你的问题,请参考以下文章

C#进阶系列17 特性Attribute

C#中的特性(Attribute)用途?

C# 特性(Attribute)

C# 自定义特性(Attribute)详解

[C#] 剖析 AssemblyInfo.cs - 从这里了解常用的特性 Attribute

C#特性(Attribute)讲解