特性Attribute
来源:互联网 发布:上海网络推广公司排名 编辑:程序博客网 时间:2024/05/21 01:28
定制特性Attribute,允许把定义的信息应用到元数据表记录项,扩展类型的能力。通过对这些元数据信息的扩展,我们可以在运行时动态的改变原有代码的执行方式。
1.使用定制特性
定制特性Attribute可以应用到类型和成员上,像常用的一些特性public、static、DLLImport等,它们为我们的使用带来了很大的便利。
定制特性使用很简单,只要把我们想要使用的特性加到指定的目标元素上,如下这样:
[DllImport("Kernel32.dll",CharSet = CharSet.Auto)] public extern static bool CloseHandle(IntPtr handle);
DLLImport定制特性就作用在了方法上,告诉CLR该方法的实现位于指定DLL的非托管代码中。其实定制特性只是把一些附近信息和我们的目标类型进行了关联。定制特性可以用于多种目标元素上,包括:
1)应用于程序集 [assembly : My1Attribute]
2)应用于模块 [module: My2Attribute]
3)应用于类型 [type : My3Attribute]
4)应用于字段 [field : My4Attribute]
5)应用于返回值 [return : My5Attribute]
6)应用于方法 [method : My6Attribute]
7)应用于参数 [params : My7Attribute]
8)应用于属性 [property : My8Attribute]
9)应用于访问器 [method : My9Attribute]
10)应用于事件 [event : My10Attribute]
在.Net Framework中定义了好几百个Attribute,在后续的版本中可能还会更多,这些定义好的特性为我们的编程提供了方便。定制特性可以多次的用在一个目标元素上,也可以在一个目标元素上应用多个定制特性。
2.定义自己的特性
我们也可以定义自己的特性,自定义的特性必须从Attribute类型继承,且类型的命名也应该是Attribute的后缀(不是必须的)。如下所示:
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true)] public class[DefaultAttribute ] public class SomeCustomPricingClass { }
: Attribute { public DefaultAttribute() {} }从Attribute继承确保了自定义的类型和CLS的兼容性,在上面的自定义的特性上同时又应用了其他的定制特性,因为特性本身就是一个类类型,所有可以应用到类型上的定制特性都可以应用到自定义的特性类型上。在自定义特性时我们可以指定特性的目标元素,上面的自定义特性指定了该特性可以用在类类型和方法上,同时允许在一个目标元素上多次应用这个特性。
应用自定义特性:
3.检测定制特性
定制
- 特性Attribute
- Attribute特性
- C# 特性(Attribute)(一)
- C# 特性(Attribute)(二)
- 反射特性(Attribute
- C#特性(Attribute)
- C#特性(Attribute)
- Attribute特性的原理
- 特性(Attribute)了解
- 特性(Attribute)
- Attribute自定义特性验证
- C# 特性(Attribute)
- C# Attribute特性 (一)
- C# Attribute特性 (二)
- C# Attribute特性 (三)
- C# Attribute 特性 学习
- C#特性Attribute
- Attribute/特性,笔记
- PHP--MongoDB
- POJ 1573 Robot Motion
- Ubuntu bash的几个初始化文件
- JS 回到顶部
- spring 中 Hibernate 事务和JDBC事务嵌套问题
- 特性Attribute
- 二叉树转化为完全二叉树
- 如何在游戏机制中使用AI/剧情脚本----基于LUA
- 关于Android UI效果编程与思考 - 整理中
- 专访唐攀:经验之谈 学习嵌入式开发起步指南
- 二叉查找树 BinarySearchTree 实现
- 使用createfile window下读写硬盘数据
- Spring--LinkedCaseInsensitiveMap
- 用幂法求矩阵的最大近似特征值 (JAVA)