这个问题直接在很大程度上是protobuf-net维护者的问题,但其他人请评论。protobuf-net和接口支持
我试图序列化包含有一个接口类型的属性的一类,即:
[DataContract]
public class SampleDataClass
{
[DataMember(Order=1)]
public int Field1 { get; set; }
[DataMember(Order = 2)]
public IPayload Payload { get; set; }
}
[ProtoContract]
[ProtoInclude(1, typeof(Payload))]
public interface IPayload
{
int Field4 { get; set; }
}
[DataContract]
public class Payload : IPayload
{
[DataMember(Order = 1)]
public int Field4 { get; set; }
}
我设法得到这种通过改变protobuf网的V1的源工作。 只要为接口定义了ProtoInclude,我就没有看到这种方法存在任何问题。
显然,为了编译我必须让ProtoContract和ProtoInclude在界面上进行修饰,再加上其他一些更改。 (注意,我将使用DataContract/KnownType,但是这些属性也无法在界面上进行修饰)
请问您可以对可能的缺点发表评论吗?
这款刚刚V2的标准功能致力于v2中继线,顺便说一句 – 2011-05-24 23:32:07