Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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网中中间类的修饰_C#_Protobuf Net - Fatal编程技术网

C# Protobuf网中中间类的修饰

C# Protobuf网中中间类的修饰,c#,protobuf-net,C#,Protobuf Net,在protobuf网络中,应该装饰哪个基类?直接子类化的类还是最远的基类?或者两者都有 [ProtoContract] [ProtoInclude(42, typeof(Derived))] // Here? public abstract class BaseClass { } [ProtoContract] [ProtoInclude(42, typeof(Derived))] // Or Here? public abstract class Intermediary : BaseCla

在protobuf网络中,应该装饰哪个基类?直接子类化的类还是最远的基类?或者两者都有

[ProtoContract]
[ProtoInclude(42, typeof(Derived))] // Here?
public abstract class BaseClass { }

[ProtoContract]
[ProtoInclude(42, typeof(Derived))] // Or Here?
public abstract class Intermediary : BaseClass { }

[ProtoContract]
public class Derived : Intermediary { }

每个预期子类型的直接父级,而不是祖先

因此:
基类
需要声明
中介
,而
中介
需要声明
派生

[ProtoContract]
[ProtoInclude(42, typeof(Intermediary))]
public abstract class BaseClass { }

[ProtoContract]
[ProtoInclude(42, typeof(Derived))]
public abstract class Intermediary : BaseClass { }

[ProtoContract]
public class Derived : Intermediary { }