【发布时间】:2011-09-12 16:51:34
【问题描述】:
我有以下..
[ProtoContract, ProtoInclude(50, typeof(DateRange)), ProtoInclude(51, typeof(IntRange))]
public class Range<T> : IEquatable<Range<T>>, IEquatable<OpenRange<T>> where T: struct, IComparable<T>
{
[ProtoMember(1)]
public T Start { get; set; }
[ProtoMember(2)]
public T End { get; set; }
}
[ProtoContract]
public class DateRange : Range<DateTime>
{
}
[ProtoContract]
public class IntRange : Range<int>
{
}
当我尝试序列化 DateRange 时,出现以下错误..
ProtoBuf.ProtoException : 一个类型只能参与一个继承层次结构 (DateRange) ----> System.InvalidOperationException : 一个类型只能参与一个继承层次
在源代码中花了一些时间之后,我很确定问题是 DateRange 和 IntRange 从技术上讲都有一个不同的父级,因为 Range
【问题讨论】:
-
我认为这与这里的问题相同:stackoverflow.com/questions/7333233/… - 你能检查一下并告诉我吗?
-
那行得通。谢谢指点!
标签: protobuf-net