频道栏目
读书频道 > 软件开发 > C# > 精通C# : 第6版
1.4.2 .NET类型元数据的作用
2013-06-22 10:14:24     我来说两句
收藏   我要投稿

本文所属图书 > 精通C# : 第6版

本书是C# 领域久负盛名的经典著作,深入全面地讲解了C# 编程语言和.NET 平台的核心内容,并结合大量示例剖析相关概念。全书分为八部分:C# 和.NET 平台、C# 核心编程结构、C# 面向对象编程、高级C# 编程...  立即去当当网订购

除了CIL指令以外,.NET程序集还包括全部完整且准确的元数据,这些元数据描述了每一个二进制文件中定义的类型(如类、结构、枚举等)以及每个类型的成员(比如属性、方法和事件等)。值得庆幸的是,生成最新的和最大的类型元数据总是编译器的工作而不是程序员的工作。因为.NET元数据非常详细,所以程序集完全成了自描述的实体。

为了说明.NET类型元数据的格式,我们来看之前为C# Calc类的Add()方法生成的元数据(为VB版本的Add()方法生成的元数据是相似的):
TypeDef #2 (02000003)
-------------------------------------------------------
  TypDefName: CalculatorExample.Calc  (02000003)
  Flags     : [NotPublic] [AutoLayout] [Class]
  [AnsiClass] [BeforeFieldInit]  (00100001)
  Extends   : 01000001 [TypeRef] System.Object
  Method #1 (06000003)
-------------------------------------------------------
  MethodName: Add (06000003)
  Flags     : [Public] [HideBySig] [ReuseSlot]  (00000086)
  RVA       : 0x00002090
  ImplFlags : [IL] [Managed]  (00000000)
  CallCnvntn: [DEFAULT]
  hasThis
  ReturnType: I4
    2 Arguments
    Argument #1:  I4
    Argument #2:  I4
    2 Parameters
    (1) ParamToken : (08000001) Name : x flags: [none] (00000000)
    (2) ParamToken : (08000002) Name : y flags: [none] (00000000)

元数据不仅用于.NET运行库环境的许多方面,而且用于各种开发工具中。例如,诸如Visual Studio 等工具提供的智能感知(IntelliSense)特性就能在设计阶段读取程序集的元数据。各种对象浏览工具、调试工具以及C#编译器自身都使用元数据。需要注意的是,元数据是许多.NET技术的支柱,这些技术包括WCF、反射、晚期绑定和对象序列化。第15章将正式讨论.NET元数据的作用。

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.4.1 CIL的作用
下一篇:1.4.3 程序集清单的作用
相关文章
图文推荐
排行
热门
最新书评
特别推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站