2010-07-02 53 views
1

我在找一种方式来连接COM +遗留应用程序的WCF服务,我一直在研究这个,因为一两天,我的天堂很幸运找到任何有用的信息,任何人都可以将我指向正确的方向吗?如何在C++ COM连接到WCF服务

我需要老COM +组件拨打电话到一个新的C#WCF服务所以我需要某种代理在COM组件抽象与服务的通信。

在此先感谢,我真的很感谢任何帮助。

+1

你检查了这个线程http://stackoverflow.com/questions/1068762/calling-c-from-c-reverse-p-invoke-mixed-mode-dlls-and-c-cli – AndrewB 2010-07-03 00:08:54

+0

是的,它可以在C#中创建一个代理,然后在C++上使用consum,是否有这个方法? 谢谢! – 2010-07-03 17:22:27

+1

请更准确地了解您的需求。你是否需要现有的COM +代码来调用服务,或者是否需要该服务来调用COM +代码? – 2010-07-06 02:25:03

回答

1

我假设你的意思是你有一个WCF服务,并运行WCF服务代码需要拨打电话到您的遗留应用程序和发送的数据输入/输出WCF服务的,对吗?如果是这样的话,那么你的问题的WCF方面实际上是无关紧要的。

你正在试图解决的是如何让你的.NET应用程序讲COM到你的遗留应用程序。

退房:Introduction to COM InteropCOM Interop Tutorials

您需要为您的COM组件生成类型库,在您的C#项目中引用它们并将其引用到System.Runtime.InteropServices,然后您可以将您的调用跨越到传统应用程序代码的COM边界。例如,如果您搜索COM Interop Tutorial,那么还有很多其他示例和教程。


编辑

我想更多关于您的问题。您需要通过创建一个与您的旧服务器(所有相同的COM +接口等等)“看起来”相似的服务器来实现代理,然后将请求(通过制作新的请求)转发给您的WCF服务。 You can do this in C#。 I whiteboardedarchive)围绕它从您的原始白板的基本想法。

+0

你好,其实是周围的其他方式,我想遗留应用程序调用WCF服务,所以我需要对COM通信代理执行对WCF服务的调用。 – 2010-07-02 23:39:35

+0

对此感到抱歉。 – 2010-07-02 23:41:53

+0

没问题,你有没有遇到过这个问题? – 2010-07-02 23:44:59

1

WCF服务名字对象可以为您的WCF服务自动生成COM代理。您的C++代码可以直接调用此代理,而无需编写任何C#代理代码或显式COM互操作代码。

http://msdn.microsoft.com/en-us/library/ms729739(VS.85).aspx了解详情。

我特别推荐这个功能,主要是因为我拥有微软的功能。