请单击以进行评分并提供反馈

  开启低带宽视图
此页面仅适用于
Microsoft Visual Studio 2005/.NET Framework 2.0

同时提供下列产品的其他版本:
.NET Framework 开发人员指南
将类型库当作程序集导入

COM 类型定义通常位于类型库中。而符合 CLS 的编译器则在程序集中生成类型元数据。类型信息的这两种来源具有很大的区别。

Note注意

如果可用,应始终使用要集成到托管代码中的 COM 组件的作者所发布的主 Interop 程序集。主 Interop 程序集中的类型已为您导入,可以从托管代码中激活和调用。有关生成和使用主 Interop 程序集的详细信息,请参见主 Interop 程序集

本主题将说明从类型库中生成元数据的方法。结果程序集称作 Interop 程序集。

生成元数据

COM 类型库可以是独立的 TLB 文件,如 Loanlib.tlb。某些类型库嵌入在 DLL 或 EXE 文件的资源部分。类型库信息的其他来源包括 OLB 和 OCX 文件。

找到包含目标 COM 类型实现的类型库后,可以通过下列选项来生成包含类型元数据的 Interop 程序集:

  • Visual Studio 2005

    Visual Studio 2005 自动将类型库中的 COM 类型转换为程序集中的元数据。有关说明,请参见如何:添加对类型库的引用

  • 类型库导入程序 (Tlbimp.exe)

    类型库导入程序提供命令行选项,用以调整结果 Interop 文件中的元数据、从现有类型库中导入类型以及生成 Interop 程序集和命名空间。有关说明,请参见如何:从类型库生成 Interop 程序集

  • TypeLibConverter

    TypeLibConverter 类(位于 System.Runtime.InteropServices 命名空间中)提供了将类型库中的 coclass 和接口转换为程序集中的元数据的方法。此 API 将生成与 Tlbimp.exe 相同的元数据输出。不过,与 Tlbimp.exe 不同的是,TypeLibConverter 类可以将内存中的类型库转换为元数据。

  • 自定义包装

    当类型库不可用或不正确时,一种可选的做法是在托管源代码中创建类或接口的重复定义。然后,用面向运行库的编译器来编译源代码以生成程序集中的元数据。

    要手动定义 COM 类型,必须具备下列各项:

    • 所定义的 coclass 和接口的精确描述。

    • 可生成正确 .NET Framework 类定义的编译器,如 C# 编译器。

    • 有关类型库到程序集转换规则的知识。

    编写自定义包装是一种较少使用的高级技术。有关生成自定义包装的其他信息,请参见自定义标准包装

有关 COM Interop 导入过程的详细信息,请参见有关从类型库转换到程序集的摘要

请参见

社区内容   什么是社区内容?
添加新内容 RSS  批注
Processing
© 2009 Microsoft Corporation 版权所有。 保留所有权利  |  商标  |  隐私权声明
Page view tracker