ProtoBuf属性ProtoMember是否继承了C#中的标记值

时间:2015-11-06 13:31:10

标签: c# inheritance attributes protocol-buffers protobuf-net

.Net ProtoBuf的{​​{1}}如何在继承链中运作?例如,查看以下类。

ProtoMember

代码内联中提到了问题。

(1)如果基类已经[ProtoContract] public class BaseClass { [ProtoMember(1)] public int Id { get; set; } [ProtoMember(2)] public string Name { get; set; } } [ProtoContract] //required? public class DerivedClass : BaseClass { [ProtoMember(3)] //can tag value be 1 ? public string Category { get; set; } } ,我是否需要标记派生类ProtoContract? (2)对于派生类的属性,我可以重用已在基类属性中使用的ProtoContract的标记值(int)吗?

1 个答案:

答案 0 :(得分:3)

(1)如果基类已经是ProtoContract,我是否需要标记派生类ProtoContract? 是的,但您还应该将顺序设置为派生类型

(2)对于派生类的属性,我可以重用已经在基类属性中使用的ProtoMember的标记值(int)吗?是的,您可以从派生类

中的1开始