我有很多 C/C++ 旧的 native .exe 和 .dll 程序在我公司的 Windows 服务器上运行。
一些 .exe 程序(我将用 E 指定)在控制台或文件中获取结果,而大多数 .dll 程序 (D) 以结构数组的形式返回结果。
我的老板问我是否可以在不修改“E”和“D”的情况下“同时”将“E”和“D”生成的结果发送到使用 WCF 的 .NET Web 服务平台。
我阅读了一些有关 Web 服务/WCF 的内容以找到答案。但是,我在脑海中构建了第一个解决方案场景:创建 C# WCF 项目,其中:
- 对于“E”,将读取“E”程序生成的文件并将结果发送给客户
- 对于“D”,将在发送结果之前与返回值“互操作和编码”。
我有一些问题;从“E”和“D”得到结果后,如何将这些结果发送给客户端?这是在发送到客户端程序之前序列化结果的“必须”吗?我想客户端程序应该有一个反序列化的例程。如果发送给客户端的值是一个简单的字符串或一个简单的整数,是否有必要进行序列化?
谢谢!!
最佳答案
首先,您应该知道有不同种类的网络服务。最常见的是 REST 和 SOAP。我假设您想使用 SOAP。在这种情况下,每条消息都必须进行编码,但这将由您的 SOAP 库/框架处理。客户也是如此。他通常不会“手工”解码 SOAP 消息。它由客户端 SOAP 库/框架处理。
您关于整合 E 和 D 的想法是正确的。对于 D,您还可以查看 CLI/C++。它可能会使集成更容易,但这取决于您的场景以及您的 .Net 和 C++ 知识。
关于c++ - 如何将 native 可执行程序的输出发送到 Web 服务世界?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1273833/