互操作封送处理
更新:2007 年 11 月
本节面向的读者包括使用平台调用、COM 互操作或者同时使用这两者来对数据进行封送处理的程序员。在这两种机制之间,某些封送处理规则和默认数据类型存在差异:
如果使用的是平台调用,本节提供了封送字符串、数组、类、结构、联合和各种其他类型的示例。
如果使用的是 COM 互操作,本节描述了如何自定义互操作包装。
互操作封送处理控制调用期间,通过方法参数和返回值在托管内存和非托管内存之间传递数据的方式。互操作封送处理是由公共语言运行库的封送处理服务执行的运行时活动。
本节提供互操作封送处理服务的概述,并介绍有关如何封送在非托管内存中具有不同的或不明确的表示形式的数据类型的详细信息。同时还介绍如何应用 MarshalAsAttribute 属性并使用由 Marshal 类公开的方法来改变默认的封送处理行为。
本节内容
Interop 封送处理概述
介绍封送处理服务、它与 COM 封送处理的关系及其在远程通信中的角色。默认封送处理行为
介绍互操作封送处理服务用来封送数据的规则。用平台调用封送数据
介绍如何声明方法参数以及将变量传递给由非托管库导出的函数。用 COM 互操作对数据进行封送处理
介绍如何自定义 COM 包装以改变封送处理行为。如何:映射 HRESULT 和异常
介绍如何将自定义异常映射到 HRESULT,并提供从每个 HRESULT 到其在 .NET Framework 中的相似异常类的完整映射。使用泛型类型进行交互操作
描述在使用用于 COM 互操作性的泛型类型时,哪些操作受支持。
相关章节
与非托管代码交互操作
介绍公共语言运行库所提供的互操作性服务。高级 COM 互操作性
提供一些链接,指向关于将 COM 组件并入 .NET Framework 应用程序中的更多信息。互操作的设计注意事项
提供有关编写集成 COM 组件的提示。.NET 远程处理
介绍 .NET Framework 中为远程通信提供的多种通信方法。