![](/img/trans.png)
[英]protobuf - serialization using protobuf-net with inheritance
[英]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.