不同平台上的对象序列化

时间:2010-07-21 06:33:15

标签: c# .net serialization

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

1 个答案:

答案 0 :(得分:1)

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

还有很多其他序列化选项可供选择:

  • XML序列化(内置或手动)
  • 节俭
  • YAML
  • JS​​ON
  • 协议缓冲区(我声明了一个兴趣:我已经将协议缓冲区的一个端口写入C#)

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

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