繁体   English   中英

将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;
   }
 }

进行Web服务调用时,始终出现以下错误:

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

请注意,这是简化的代码版本,可帮助您理解问题。

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

谢谢。

[ProtoContract]属性标记IMyDto
在我完成之后,它对我有用。
入门文档说,有必要对参与序列化的每种类型都进行标记。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM