在servicestack中使用protobuf,为啥order只能从1而不是0开始?
Posted
技术标签:
【中文标题】在servicestack中使用protobuf,为啥order只能从1而不是0开始?【英文标题】:Using protobuf in servicestack, why order can only start from 1 not 0?在servicestack中使用protobuf,为什么order只能从1而不是0开始? 【发布时间】:2017-04-28 14:59:08 【问题描述】:使用 servicestack 和 protobuf,我发现了一个有趣的问题。
如果我在服务器端和客户端都定义了以下类,它可以工作
[DataContract]
public class Test : IReturn<TestResponse>
[DataMember(Order = 1)]
public string input get; set;
这不是。
[DataContract]
public class Test : IReturn<TestResponse>
[DataMember(Order = 0)]
public string input get; set;
为什么order只能从1开始?
阅读这个单元测试,所有的属性顺序都是从 1 开始的。 https://github.com/ServiceStack/ServiceStack/blob/master/tests/ServiceStack.WebHost.IntegrationTests/Tests/ProtoBufServiceTests.cs
【问题讨论】:
【参考方案1】:Order=0
是整数的默认值,与不提供值相同。
【讨论】:
我可以建议将这条信息添加到docs.servicestack.net/protobuf-format 吗? @shawhu 你对一些事情感到困惑,protobuf 格式使用 protobuf 序列化程序,它是一个独立的项目,数字索引是格式布局字段的方式,即它对格式至关重要跨度>以上是关于在servicestack中使用protobuf,为啥order只能从1而不是0开始?的主要内容,如果未能解决你的问题,请参考以下文章
带有 ServiceStack 和紧凑框架的 Protobuf-net
如何在 ServiceStack 5.0 项目中使用来自 ServiceStack 4.0 的服务模型?