WCF二进制序列化和非.NET客户端

时间:2012-09-25 11:13:47

标签: wcf serialization binary

有什么方法可以使用二进制序列化进行通信的WCF服务?什么是序列化的格式,我可以以某种方式反序列化.NET序列化对象(使用非.NET)?

1 个答案:

答案 0 :(得分:3)

如果“二进制序列化”是指具有二进制编码的端点,那么是的,您可以以某种方式反序列化非.NET客户端上的.NET对象 - 该格式是公开记录的(见下文) )。但是,AFAIK没有非.NET客户端的库,它们可以反序列化该格式的对象,因此您可以自己动手。如果可以的话,你真的应该考虑添加另一个以“普通”XML公开数据的端点。

二进制格式(再次,如果你正在使用它 - 二进制编码器)实际上只是XML的格式。因此,不要将数据序列化为

等格式
<Person xmlns="http://my.namespace.com">
    <Name>John Doe</Name>
    <Age>29</Age>
</Person>

它将以二进制版本序列化,但它代表相同的数据(XML Infoset)。

可以在http://msdn.microsoft.com/en-us/library/cc219210(v=prot.10).aspx找到二进制XML格式的规范。二进制格式还定义了dictionary concept(用于从流中删除重复或常用的字符串),您可能还需要查看http://msdn.microsoft.com/en-us/library/cc219175(v=prot.10).aspx处的“SOAP数据结构”协议。 / p>