.net Framework拾遗(1)元数据

原创 2004年10月28日 16:08:00

.net Framework拾遗(1)元数据

目录
1.概述
2.元数据优点
3.元数据和PE文件结构

 

1.概述

 在过去,以一种语言编写的软件组件(.exe或.dll)不能方便地使用以另一种语言编写的软件组件。
 在这个问题的解决上,COM向前迈进了一步。
 .net Framework允许编译器向所有的模块和程序集发出附加的说明性信息,
 从而使组件互用更加简单。
 这种叫“元数据”的信息有助于组件无缝交互。

 元数据是一种二进制信息。
 用以对存储在公共语言运行库可移植可执行文件(PE)文件或存储在内存中的程序进行描述。
 将你的代码编译为PE文件时,便会将元数据插入到该文件的一部分中。
 而将代码转换为MIcrosoft中间语言(MSIL),并将其插入到该文件的另一部分中。
 在模块或程序集中定义和引用的每个糊弄和成员都将在元数据中进行说明。
 当执行代码时,运行库将元数据加载到内存中,
 并引用它来发现有关代码的类,成员,继承等

 元数据以非特定语言的方式描述在代码中定义的每一类型和成员。
 元数据存储以下信息:
  .程序集的说明:
   标识(名称,版本,区域性,公钥)
   导出的类型
   该程序集所依赖的其他程序集
   运行所需的安全权限
 .类型说明
   名称,可见性,基类和实现的接口
   成员(方法,字段,属性,事件,嵌套的类型)
 .属性
   修改类型和成员的其他说明性元素

2.元数据优点:

 对于一种更简单的编程模型而言,元数据是关键
 该模型不需要接口定义语言(IDL)文件,头文件或任何外部组件引用方法
 允许.net语言自动以非特定语言的方式对其自身进行描述。
 通过属性可以对元数据进行扩展

 自描述文件  
   公共语言运行库模块和程序集是自描述的。
   模块的元数据包含与另一模块进行交互所需的全部信息
   元数据自动提供com中IDL的功能允许将一个文件同时用于定义和实现
   运行库模块和程序集不需要向操作系统注册
   运行库使用的说明始终反映编译文件中的实现代码,从而提高应用的可靠性。
 语言互用性和更简单基于组件的设计
   元数据提供所有必需的有关已编译代码的信息,以供您从用不同语言编写的PE文件中继承类。
   可以创建用任何托管语言(任何面向公共语言运行库的语言)编写的任何类的实例,
   不用担心显式封送处理或使用自定义的互用代码
 属性
   .net framework允许在编译文件中声明特定各类的元数据(称为属性)。
   属性用于更精确地控制运行时你的程序如何工作。
   可以通过用户定义的自定义属性向.net framework文件发出自定义的元数据。
 
3.元数据和PE文件结构
 大多数开发人员不需要了解元数据的实现细节

 元数据存储在PE文件的一个部分中
 MSIL存储在PE文件的另一部分中
 文件的元数据部分包含一系列的表和堆数据结构
 MSIL部分包含MSIL和引用PE文件元数据部分的元数据标记
 当使用工具(MSIL反汇编工具ILDASM.exe)来查看代码的MSIL或使用运行库调试器(CORDBG.exe)来执行内存转储时,可能会遇到元数据标记。
 
按照自己的理解:元数据应该是用来描述指定的代码段“是什么”的一种结构
        使用元数据,就可以让编译器或其他程序“知道”要操作的对象“是什么”的问题。 

 
 


 

net Framework拾遗(1)元数据

 1.概述 在过去,以一种语言编写的软件组件(.exe或.dll)不能方便地使用以另一种语言编写的软件组件。 在这个问题的解决上,COM向前迈进了一步。 .net Framework允许编译器向所有的...
  • vipxiaotian
  • vipxiaotian
  • 2007年07月17日 21:46
  • 512

.net元数据

概述        现在在.net平台开发出来的程序,其编译后的组成为:IL代码、资源、程序集清单和类型元数据。我们知道,IL代码就是我们编写的代码,资源就是图片文件,xml文件,及其他文件,唯独不...
  • jiben2qingshan
  • jiben2qingshan
  • 2014年08月31日 23:58
  • 1041

.net Framework拾遗(5) 异常

.net Framework拾遗(5) 异常1.概述  程序必须能够统一处理在执行期间发生的错误  传统上,语言的错误处理模型依赖于语言检测错误和查找错误处理程序的独特方法      或依赖于操作系统...
  • colayungnew
  • colayungnew
  • 2004年10月28日 17:47
  • 1079

下载: Microsoft .NET Framework 3.5 Service pack 1 (Full Package) - 简体中文

    Microsoft .NET Framework 3.5 Service pack 1 (Full Package) - 简体中文 http://download.microsoft.com/...
  • naxin
  • naxin
  • 2009年10月15日 11:08
  • 2989

李建忠:Metadata是.NET平台的核心灵魂

网友来信:李老师,您好!前几天在博客园上的C#大论战,不知道您看过吗?特别是其中一个网友firelong所写的几篇轰动的帖子,对.NET的性能提出了许多批评。这个话题在我们项目组也引起了很多争论,很想...
  • u013885963
  • u013885963
  • 2014年04月18日 12:32
  • 1816

安装SQL Server出现 Microsoft .NET Framework 3.5 Service Pack 1 规则失败提示

环境: Windows Server 2008 R2 SP1             SQL Server 2012   现象:安装SQL Server过程中出现如下图所示提示信息   ...
  • jimoxiatian1989
  • jimoxiatian1989
  • 2016年06月24日 11:26
  • 3889

.NET framework 4.0 安装失败的解决方案

今天安装一个翻墙软件的时候,提示要安装.NET framework 4.0,安装过程中一直安装失败回滚,错误信息如下 错误日志OS Version = 6.1.7601, Platform 2,...
  • u011120720
  • u011120720
  • 2016年07月22日 10:20
  • 8922

Internal .Net Framework Data Provider error 6

在使用SQL Server 2005的database mirroring功能时遇到了Internal .Net Framework Data Provider error 6这个错误,发现没法立刻解...
  • fanweixiao
  • fanweixiao
  • 2008年01月14日 13:28
  • 1344

NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式

阅读目录: 4.ModelMetadata(ModelMetadata元数据如何支撑Model与View之间的组合关系) 4.1.ModelMetadata元数据结构(元数...
  • Sayesan
  • Sayesan
  • 2015年08月20日 17:01
  • 528

安装sql server 2012提示microsoft.net framework 3.5 service

安装sql server 2012提示microsoft.net framework 3.5 service pack1规则失败 解决方法:打开控制面板——程序——程序和功能——启用或关...
  • h273979586
  • h273979586
  • 2016年11月11日 17:17
  • 11746
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:.net Framework拾遗(1)元数据
举报原因:
原因补充:

(最多只允许输入30个字)