首先,让我们来简单地看下什么叫做CLS。
鉴于个人的英文水平,我还是先给出 CLS的英文解释,然后我再翻译:
The CLS is a specification that defines the rules to support language integration. This is done in such a way, that programs written in any language (.NET compliant) can interoperate with one another. This also can take full advantage of inheritance, polymorphism, exceptions, and other features.
CLS定义了支持语言继承的规范,他使我们所写的程序可以于任何一门.NET 所兼容的语言交互,这使我们也可以充分利用继承,多态,异常以及其他一些特点的优势。
其实简化了说,CLS就是定义了个门语言的子集,从而去保证语言的互操作性。
因此,为了语言之间的互操作,我们应该使我们的程序遵从CLS。
我们看一下 系统的层次,系统下应该是程序集,程序集下就是类(或结构体等)。那么我们为了保证语 言的互操作性,就应该保证程序集对外的部分都遵从CLS。
这点很容易保证:
当我们新建一个程序集的时候,有一个文件叫做:AssemblyInfo.cs:
[assembly: AssemblyTitle("ClassLibrary1")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("微软中国")]
[assembly: AssemblyProduct("ClassLibrary1")]
[assembly: AssemblyCopyright("Copyright 微软中国 2009")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 使此程序集中的类型
// 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,
// 则将该类型上的 ComVisible 属性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("694543e8-4c7f-4952-9e98-7282ecff1c15")]
// 程序集的版本信息由下面四个值组成:
//
// 主版本
// 次版本
// 内部版本号
// 修订号
//
// 可以指定所有这些值,也可以使用“内部版本号”和“修订号” 的默认值,
// 方法是按如下所示使用“*”:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]