Как сериализовать класс реализует два интерфейса, которые имеют одинаковый интерфейс на основе

Я пытаюсь использовать 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)

Ваш ответ на вопрос