利用特性扩展元数据

原文:http://msdn.microsoft.com/zh-cn/library/5x6cd29c.aspx

如果您使用过 C++,或许对包含关键字(如 public 和 private)的声明比较熟悉,这些关键字提供有关类成员的其他信息。 另外,这些关键字通过描述类成员对其他类的可访问性来进一步定义类成员的行为。 由于编译器被显式设计为识别预定义关键字,因此传统上您没有机会创建自己的关键字。 但是,公共语言运行时允许您添加类似关键字的描述性声明(称为特性)来批注编程元素,如类型、字段、方法和属性。

为运行时编译代码时,该代码被转换为 Microsoft 中间语言 (MSIL),并同编译器生成的元数据一起被放到可迁移可执行 (PE) 文件的内部。 特性使您得以向元数据中放置额外的描述性信息,并可使用运行时反射服务提取该信息。 当您声明从 System.Attribute 派生的特殊类的实例时,编译器会创建特性。

.NET Framework 出于多种原因使用特性并通过它们解决若干问题。 特性描述如何将数据序列化,指定用于强制安全性的特性,并限制实时 (JIT) 编译器的优化,从而使代码易于调试。 特性还可以记录文件名或代码作者,或在窗体开发阶段控制控件和成员的可见性。

可使用特性以几乎所有可能的方式描述代码,并以富有创造性的新方式影响运行时行为。 使用特性可以向 C#、Visual C++、Microsoft Visual Basic 2005 或其他任何以运行时为目标的语言添加自己的描述性元素,而不必重新编写编译器。

标题

说明

应用特性

描述如何将特性应用到代码元素。

编写自定义特性

描述如何设计自定义特性类。

检索存储在特性中的信息

描述如何检索已加载到执行上下文中的代码的自定义特性。

元数据和自描述组件

提供元数据概述并描述元数据在 .NET Framework 可迁移可执行 (PE) 文件中的实现方式。

如何:将程序集加载到仅反射上下文中

解释如何在只反射上下文中检索自定义特性信息。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值