【发布时间】:2011-03-03 13:46:48
【问题描述】:
我最近做了很多序列化开发,主要是为了通过套接字发送对象,但我遇到了一个有趣的问题:是否可以通过序列化器?
我设想的场景是这样的:每个客户端都有某种“状态”对象,由许多属性(字符串、整数、布尔值等)组成。当您的客户端首次连接时,整个状态对象通过 Xml 或二进制序列化程序进行序列化,并通过套接字发送,以便在另一端重新创建。现在客户端和服务器都有相同的状态对象。然后,您的服务器需要更改状态,只需设置状态对象的属性之一即可。套接字(挂钩到状态的事件,或状态对象本身的一部分)可以通过重新序列化整个对象来同步两种状态,但看起来单个“属性更改”对象就可以了。
显然,这可以手动实现。但似乎序列化程序应该能够只序列化一个属性,并像在另一边的补丁一样应用它。有谁知道这是否可能,还是我必须从头开始写整个东西?
【问题讨论】:
-
序列化器只知道如何序列化和反序列化,即它们被转储到对象本身。他们不知道如何映射属性等,即使您可以进行部分序列化(使用忽略属性或诸如此类),您仍然需要代理来进行映射。序列化对象然后调用方法来同步各个字段不是更容易吗?我是否正确理解了您的问题?
标签: c# .net serialization xml-serialization