【问题标题】:Serialization and Deserialization of singleton obejct to nonsingleton object单例对象到非单例对象的序列化和反序列化
【发布时间】:2017-01-29 02:46:42
【问题描述】:

是否可以在客户端创建一个单例类对象,将其序列化为网络流,然后在服务器端将对象反序列化为相同的类,就像在服务器端它不是单例对象一样?

【问题讨论】:

  • 什么客户端?你是怎么序列化的?您打算如何镜像服务器端?这是一个可笑的模糊问题,应该这样结束。

标签: c# networking serialization singleton deserialization


【解决方案1】:

除非您打算使用二进制序列化程序,否则不会,因为 XML 序列化是最好的,但需要一个公共的无参数构造函数,这会破坏您的单例。

您可以使用反射将单例转换为 XML,然后将其解析到服务器...您需要通过反射或创建新对象来解析信息。就像评论所暗示的那样,它有点含糊,但我个人会做的是将单例属性传递到 XML 对象中并将其发送到服务器。尽管我知道二进制序列化可以提高性能,但它是最容易使用的。除非您正在流式传输,否则它可能不值得获得。

所以简短的回答是否定的......您不能序列化一个对象以仅反序列化同一个对象而成为不同的对象。充其量它仍然是一个单例,并且需要进行一些解析。

【讨论】:

    猜你喜欢
    • 2012-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多