简单介绍C#元数据

开发 后端
本文介绍C#元数据用于各项任务:用于表示NGWS runtime用途的信息,如定位和装载类、 内存中这些类的事例、解决调用 、翻译IL为原始码、加强安全并设置运行时上下文边界。

C#元数据

尽管元数据用于描述和引用由VOS类型系统定义的类型,但它还不能锁定到这个单个目标。当你写一个程序时,通过利用类型声明,你所声明的类型(假定它们是数值类型或引用类型)被介绍给NGWS runtime类型系统。类型声明在存于PE可执行文件内部的元数据中得到描述。

基本上,C#元数据用于各项任务:用于表示NGWS runtime用途的信息,如定位和装载类、 内存中这些类的事例、解决调用 、翻译IL为原始码、加强安全并设置运行时上下文边界。

你不必关心C#元数据的生成。元数据是由C#的"代码转IL编译器"(code-to-IL compiler,不是JIT编译器)生成的。代码转IL编译器发送二进制元数据信息给PE文件,是以标准的方式发送的,不象C++编译器那样,为出口函数创建它们自己的修饰名字。

你从C#元数据和可执行代码并存所获得的主要优势为,有关类型的信息同类型自身固定在一起,不会遍布很多地方。同样有助于解决存在于COM中的版本问题。进一步地,你可以在相同的上下文中使用不同的版本库,因为库不仅被注册表引用,也被包含在可执行代码中的元数据引用。

通用语言规范

通用语言规范(CLS)并不是虚拟对象系统(VOS)真正的一部分,它是特殊的。CLS定义了VOS中的一个类型子集,也定义了必须符合CLS的常规用法。

那么,对此有什么迷惑呢?如果一个类库遵守CLS规则,其它编程语言同样也遵守CLS规则,那么其它编程语言的客户也可以使用类库。CLS是关于语言的交互可操作性(interoperability)。因此,常规用法必须仅遵循外部可访问项目 (externally visible items)如方法、属性和事件等等。

我所描述的优点是你可以做以下工作。用C#写一个组件,在VB中派生它,因加在VB中的功能是如此之强大,在C#中再次从VB类派生它。只要所有的外部可访问项遵守CLS规则,这样是可行的。

我在这本书中出示的代码不关心CLS协定。但在构建你的类库时要注意到CLS协定。我提供了表2.1,用以给类型和外部

【编辑推荐】

  1. 介绍Mono C#编译器
  2. C#运算符重载学习总结
  3. 概述C#语言的结构体
  4. C#遗传算法学习笔记
  5. 讨论C#分部方法
责任编辑:佚名 来源: 51CTO.com
相关推荐

2009-09-07 10:48:53

C#数据类型

2009-09-04 10:16:30

C#数据类型

2009-08-25 13:38:35

C# Timer组件

2009-08-07 17:12:07

C# DLL函数

2009-08-06 18:15:13

C# SQL Serv

2009-08-13 17:36:54

编译C#代码

2009-09-01 16:19:57

C# new()约束

2009-08-20 16:25:59

C# 匿名方法

2009-08-03 17:51:43

C#引用类型

2009-09-03 09:40:57

C#创建表单

2009-08-07 17:41:40

C#预处理

2009-08-06 14:53:41

C# User类

2009-08-10 16:19:37

C#冒泡排序

2009-08-14 17:27:56

C#方法参数

2009-08-27 10:19:22

C#匿名类型

2009-08-18 17:37:57

C#固定指针

2009-08-21 17:55:52

C#复合控件

2009-08-25 14:42:41

由C++转向C#

2009-08-12 10:11:18

C# 回调函数

2009-09-02 14:33:57

C#类实现接口
点赞
收藏

51CTO技术栈公众号