如何序列化类实现了两个具有相同基础接口的接口

时间:2011-10-03 19:50:20

标签: c# serialization protobuf-net

我正在尝试使用protobuf v2序列化一个类A实现接口B和C.而B和C都来自D。


[ProtoBuf.ProtoContract]
[ProtoBuf.Includes(101, typeof(B))
[ProtoBuf.Includes(101, typeof(C))
interface D{...}

[ProtoBuf.ProtoContract]
[ProtoBuf.Includes(101, typeof(A))
interface B:interfae D{...}

[ProtoBuf.ProtoContract]
[ProtoBuf.Includes(101, typeof(A))
interface C:interface D
{
   ...
}

[ProtoBuf.ProtoContract]
class A: interface B, interface C{...}

将返回错误:类型只能参与一个继承层次结构。

1 个答案:

答案 0 :(得分:2)

接口实际上与继承的“派生”(继承)不同。虽然提供了 basic 接口支持,但这不是protobuf-net目前支持的场景。

至于是否可以支持它 - 这需要一些思考。我建议logging a request, here