NET和COM的互操作性

NET和COM的互操作性

一、概括
COM是NET以前的技术。COM定义了一个组件模型,在该模型中,组件可以用不同的编程语言编写。用 C++编写的组件可以在VB客户端中使用。组件还可以在本地的进程中使用,跨进程使用或跨网络使用。看起来是不是很熟悉?当然,NET的目标也是这样。但这些目标的实现方式不同。COM概念使用起来越来越复杂,且已经不能扩展了。NET实现了与 COM类似的目标,但引入了新概念,实现起来更容易。
使用 COM和.NET交互操作的主要问题是要理解COM。是COM客户端使用NET组件,还是NET应用程序使用COM组件并不重要,而是必须理解COM。所以这里首先比较 COM和.NET的功能

二、元数据:
在COM中组件的所有信息都存储在类型库中。类型库包含的信息有接口、方法和参数的名称和ID等。而在NET中,所有这些信息都可以存储在程序集中,COM存在的问题是,类型库是不能扩展的。在C++中,IDL(Interface Definition Language,接口定义语言)文件用于描述接口和方法。其中一些IDL修饰符不在类型库中,因为Visual Basic(和负责开发类型库的Visual Basic小组)不能使用这些IDL修饰符。而在NET中,不存在这个问题,因为NET元数据可以使 自定义特性来扩展。
因此,一些COM组件有类型库,而其他COM组件没有。如果没有类型库可用,就可以使用C++头文件来描述接口和方法。在NET中,使用带有类型库的COM组件比较容易,也可使用不带类型库的COM组件。在这种情况下,必须使用C#码重新定义 COM接口。

三、释放内存:
在NET中,内存的释放由垃圾收集器完成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值