简化COM互操作性与多线程编程:C# 4.0的强大功能
1. 利用动态数据简化COM互操作性
在COM互操作性项目中, dynamic 关键字有着重要用途。编译后的COM库和.NET库一样包含元数据,但格式不同。若.NET程序要使用COM对象,首先要用Visual Studio 2010生成“互操作程序集”,步骤如下:
1. 激活“添加引用”对话框。
2. 选择“COM”选项卡。
3. 找到要使用的COM库。
选择COM库后,IDE会生成一个新程序集,即“互操作程序集”。它不包含实现代码,仅含少量将COM事件转换为.NET事件的代码,但能保护.NET代码免受COM内部复杂性的影响。
在C#代码中可直接针对互操作程序集编程,CLR(若使用 dynamic 关键字,还有DLR)会自动在.NET和COM类型间进行映射。背后通过运行时可调用包装器(RCW)在.NET和COM应用间进行数据封送,RCW会处理数据类型转换、调整COM对象引用计数器等。
2. 主互操作程序集(PIAs)的作用
许多COM库供应商提供“官方”互操作程序集,即主互操作程序集(PIAs)。PIAs是经过优化的互操作程序集,能清理并可能扩展通过“添加引用”对话框引用COM库时生成的代码。PIAs通常列在“添加引用”对话框的“.NET”选项卡中。若从“COM”选项卡引用COM库,Visual Studio会使用提供的PIA而非生成新的互操作库。
3. 嵌入互操作元数据
在.NET 4.0之前,C#应用使用COM库时,需确保客户端机器有互操作程序集
超级会员免费看
订阅专栏 解锁全文
6万+

被折叠的 条评论
为什么被折叠?



