日期:2014-05-17  浏览次数:20993 次

WCF客户端 与 C++服务端 的数据结构不一致
最近在学习WCF,因为下个项目要用WCF做服务端。但不仅仅是服务端,因为也会调用C++客户端里的一些函数,所以现在的状态是WCF和C++互为服务端和客户端。问题出在WCF调用C++WebService的函数时,C++里应返回一个结构体如下:
class cwmpMethodList
{
public:
char **__ptrstring;
int __size;
};
因为WCF里用C#没有二级指针,我就写成了string[] __ptrstring = new string[2];(假设是2)来接收这个结构。
结果,WCF里会提示XML 文档(2, 467)中有错误。然后我把cwmpMethodList结构里都注释掉,WCF这边就正常了。也就是说问题出在反序列化这边,WCF中定义的MethodList与C++的对应不起来。
请问前辈们,这种问题该如何处理?

------解决方案--------------------
个人建议,你还是不要直接使用WCF去调用C++的服务。而应该是封装一个托管的C++类,然后这个托管的C++类调用你的C++类。这样封装置后,再使用WCF去调用。
------解决方案--------------------
这个当让不行,使用stringbuilder试试吧。