Protobuf-Net:如何序列化 guid?

Posted

技术标签:

【中文标题】Protobuf-Net:如何序列化 guid?【英文标题】:Protobuf-Net: how to serialize guids? 【发布时间】:2010-08-31 15:42:22 【问题描述】:

是否有在 protobuf-net 中序列化 Guid 的首选方法?它似乎不是受支持的类型?

【问题讨论】:

我一直将其序列化为字符串,但遇到了一些似乎与该属性相关的奇怪问题。我还不能验证确切的问题,但我想也许有更好的方法来处理 Guid。 我的对象中的“第一个”属性是 Guid 类型(如 ID、UID 等)时遇到了问题。在反序列化时,它始终是一个空的 GUID。我发现我已将属性中的顺序设置为 0(考虑从零开始的索引)。必须是正整数,从 1 开始。一旦我改变了数字,一切都奏效了。 【参考方案1】:

抱歉延迟 - 假期等。在 protobuf-net 中,Guid 应该可以正常工作 - 它几乎被视为byte[]。确认一下:你的意思是protobuf-net(一个具体的实现)吗?或者通常只是 protobuf(它不是核心类型)。

【讨论】:

是的,我指的是特定的 protobuf-net 实现。抱歉,我的问题一定是“用户错误”。今天早上我尝试在沙盒测试中序列化 Guid 并能够成功序列化 Guid 和 Guid?使用我拥有的 V1 和 V2 的当前版本。我现在更难过,但我绝对能够将 Guid 序列化为 Guid。谢谢!

以上是关于Protobuf-Net:如何序列化 guid?的主要内容,如果未能解决你的问题,请参考以下文章

protobuf-net 如何序列化 DateTime?

ProtoBuf-Net 错误消息 - “不支持嵌套或锯齿状列表和数组”

使用 ProtoBuf-Net,如何(反)序列化多维数组?

C# Protobuf-net:如何从网络流中连续反序列化?

如何通过 ProtoBuf-net 使用 DateTimeKind 选项序列化 DateTime 字段

如何使用 protobuf-net 反序列化 .asmx webservice 中指定的对象