COM coobjects和接口C#

时间:2011-04-14 17:01:22

标签: c# com comobject com-interface

我对此非常陌生,并且正在关注msdn:http://msdn.microsoft.com/en-us/library/aa645736(v=vs.71).aspx#vcwlkcominteroppart1cclienttutorialanchor2

的教程

我的问题是为什么我们使用COM接口 AND COM CoClasses?实例化COM CoClass的实例似乎很奇怪,实例化一个新对象,该对象是旧对象,但是作为COM接口转换。

我真的只想在这里掌握意识形态......任何帮助都是有用的。

2 个答案:

答案 0 :(得分:3)

理论是从实现中分离接口(对象可以做什么)(它是如何做的,或者更具体地说是实例化特定代码)。

仅将类型定义为接口允许COM指定跨多种语言的对象如何互操作;这是其主要目标之一。由于接口规范是如何传递数据和调用方法的合同,因此任何语言都可以公开COM对象,而客户端无需了解实现者(CoClass)的内部工作方式。

这允许VB6,.net,C ++,deplhi和任何其他语言在同一个应用程序中进行互操作。

wikipedia article on COM在这方面有一些很好的背景。

答案 1 :(得分:1)

这是软件工程中的基本设计原则,接口是契约,在com世界中,coClass是一种实现。对于COM,接口可以在IDL中定义,但是实现(coClass)可以在VB,C ++,。net等中完成。