sco*_*ttm 11 c# c++ serialization
有没有一种简单的方法可以用c ++(xml或二进制)序列化数据,然后在C#中反序列化数据?
我正在使用一些不能运行.Net的远程WINNT机器.我的服务器应用程序完全用C#编写,所以我想要一种简单的方法来共享简单的数据(主要是键值对,也许是SQL结果集的一些表示).我认为最好的方法是在客户端上以某种预定义格式将数据写入xml,将xml文件传输到我的服务器,并让C#包装器将xml读入可用的c#对象.
客户端和服务器通过tcp连接进行通信,我真正想要的是将客户端内存中的数据序列化,通过套接字将二进制数据传输到ac#内存流,我可以将其反序列化为ac#对象(消除文件)创造,转移等),但我不认为这样的事情存在.随意赐教.
我知道我可以在c ++应用程序中创建一个结构,并在c#中定义它并以这种方式传输数据,但在我看来,这就像我限制了可以发送的内容.我必须为对象等设置预定义的大小
协议缓冲区可能对您有用.
协议缓冲区是Google的语言中立,平台中立,可扩展的机制,用于序列化结构化数据 - 思考XML,但更小,更快,更简单.您可以定义数据的结构化时间,然后可以使用特殊生成的源代码轻松地在各种数据流中使用各种语言(Java,C++或Python)编写和读取结构化数据.
.NET端口可从Marc Gravell和Jon Skeet获得.