【问题标题】:Object Serialization on different platform不同平台上的对象序列化
【发布时间】:2010-07-21 06:33:14
【问题描述】:

大家好,我正在创建一个非常简单的套接字服务器,它允许它的客户端通过通过网络发送它来根据密钥保存自己的对象状态。我正在使用一个非常简单的协议将序列化对象编码为 base64 字符串,并将作为我的自定义 xml 格式的一部分发送出去。我想知道如果客户端应用程序在 32 位和 64 位 Windows 上运行并使用 .net 框架,序列化是否仍然相同?如果所有客户端应用程序都是使用 c++ 创建但在不同平台上运行,这是否也会相同?

【问题讨论】:

    标签: c# .net serialization


    【解决方案1】:

    32 位和 64 位 CLR 之间的序列化应该不是问题,但如果您希望能够在非 .NET 平台上进行序列化,则不应使用默认的二进制序列化。就我个人而言,无论如何我都不会使用它,因为在版本控制等方面处理起来可能会很棘手。

    还有很多其他可用的序列化选项:

    • XML 序列化(内置或手动)
    • 节俭
    • YAML
    • JSON
    • Protocol Buffers(我声明有兴趣:我已将 Protocol Buffers 的一个端口写入 C#)

    所有这些都可能在多个平台上更好地工作。有些也是人类可读的,这有时很有用。 (协议缓冲区不是人类可读的,但很容易转储协议缓冲区消息的文本版本。)

    有些人通过单独的架构有效地构建自己的对象模型,而其他人会(或多或少地)处理您现有的对象模型。

    【讨论】:

    • 实际上我想反序列化在非 .net 应用程序上创建的对象,因为我提供了一种自定义 xml 格式的方法来告诉我编码对象的一些基本信息,如版本及其类型。你能告诉我一个更好的方法吗?
    猜你喜欢
    • 1970-01-01
    • 2011-04-12
    • 2019-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多