Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ProtoBuf属性ProtoMember是用C中的标记值继承的吗#_C#_Inheritance_Attributes_Protocol Buffers_Protobuf Net - Fatal编程技术网

C# ProtoBuf属性ProtoMember是用C中的标记值继承的吗#

C# ProtoBuf属性ProtoMember是用C中的标记值继承的吗#,c#,inheritance,attributes,protocol-buffers,protobuf-net,C#,Inheritance,Attributes,Protocol Buffers,Protobuf Net,.NetProtoBuf的ProtoMember在继承链中是如何工作的?例如,看看下面的类 [ProtoContract] public class BaseClass { [ProtoMember(1)] public int Id { get; set; } [ProtoMember(2)] public string Name { get; set; } } [ProtoContract] //required? public class DerivedC

.Net
ProtoBuf
ProtoMember
在继承链中是如何工作的?例如,看看下面的类

[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; }
}
代码内联中提到了问题

(1) 如果基类已经是
ProtoContract
,是否需要标记派生类
ProtoContract

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

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


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

感谢您的快速响应。你能详细说明一下吗?“是的,但是您还应该将order设置为deriver type”?当然,您应该将属性
[ProtoInclude(intOrder,typeof(DerivedClass))]
添加到基本类型;或者使用静态类
RuntimeTypeModel
进行另一种方式的映射