使用具有继承和接口的 protobuf-net

Using protobuf-net with inheritance and interface

我有一个合同原件如下:

[ProtoContract]
public MyContract: ContractBase
{
   [ProtoMember(1)] 
   List<IMyDto> MyData
  {
      get;
     set;
  }
}

我的 IMyDto 看起来像这样及其实现 MyDto

[ProtoInclude(600, typeof(MyDto))]
public interface IMyDto
{
   int MyData
   {
    get;
    set;
   }
}
[ProtoContract]
public class MyDto :IMyDto
{
   [ProtoMember(1)]
   int MyData
   {
    get;
    set;
   }
}

最后,我的 ContractBase 看起来像这样:

[ProtoContract]
[ProtoInclude(500, typeof(MyContract))]
public class ContractBase
{
   [ProtoMember(501)]
   public string[] ErrorMessages
   {
     get;
     set;
   }
 }

当我进行网络服务调用时,我不断收到以下错误:

无法为 ContractBase 准备序列化程序 ---> System.InvalidOperationException:没有为类型定义序列化程序:IMyDto

请注意,这是用于理解问题的简化版代码。

请让我知道我做错了什么? 任何帮助深表感谢。

谢谢。

[ProtoContract] 属性标记 IMyDto
在我完成之后,它对我有用。
Getting Started documentation说的是,每个参与序列化的类型都需要这样标记。