c# - 如何从 C++ 调用 WCF 服务

标签 c# c++ wcf dll cross-platform

我有一个 WCF 服务。我需要从 C++ 调用它。

解决方案可以是使用 C# dll 调用 WCF 并从 C++ 代码调用它。 或者C++ dll直接调用WCF Remote Service。

编辑: 我尝试在以下代码项目的帮助下将 C# dll 导入 C++ 文件 article .但是在我的 C++ 文件中我不能像这样导入:

#import "tlbfile.tlb" raw_interfaces_only named_guids

ERROR Cannot open source file tldfile.tlh

编辑 2: 我决定使用 VC++。并制作了一个 C# dll 来调用 Web 服务。但不能在 MFC 应用程序中引用 dll。

我在 VS 2012 上运行。

最佳答案

正如上面提到的,WCF 公开了 WSDL。这是独立于平台的。 您可以使用您提到的任何方式。

1:将 C# 客户端创建为库 (dll),并使用互操作性在 C++ 代码中使用该 dll。但这是一个乏味的过程,因为互操作性很乏味。

2:直接创建C++客户端:

 A. Create C++ proxy class from WSDL file
 B. Use that proxy class in your Code for communicating with Server. You will have to maintain Channel opening and closing.

3:使用第三方库处理通信 channel 。最好的图书馆之一是 POCO。 Poco Library for C++

关于c# - 如何从 C++ 调用 WCF 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18330733/

相关文章:

c# - 非实例化加载预制件与实例化预制件相比如何?

c++ - 为什么 `inf`代表浮点溢出?

c++ - C++矩阵运算符+

wcf - 测量服务器上的 WCF 请求时间

C#如何处理GUID返回类型异常?

c# - AutoMapper ProjectTo 与单个实体?

wcf - 名称为 'httpRequest' 的属性不存在

c# - 我怎样才能在 WCF 中有两个同名的方法?

c# - Resharper (2016.1 C#) 可以建议用 try catch block 捕获异常吗?

c++ - 为什么在 while 代码块中重新评估 const 关键字?