<IComparable> 使用 protobuf-net 序列化列表成员



我正在尝试使用protobuf-net:序列化现有的遗留类

using ProtoBuf;
using System;
using System.Collections.Generic;
[ProtoContract]
public class AttributeValue {
List<IComparable> attributeValues;
[ProtoMember(1)]
public List<IComparable> Values {
get {
return this.attributeValues;
}
}
}

我得到一个例外,说No serializer for type System.IComparable is available for model (default)
通过查看一些示例,我发现应该在ProtoMember属性中添加DynamicType = true属性,但现在不赞成使用它
是否有其他方法可以序列化和反序列化具有类似声明成员的类?

根本没有。Protobuf的前提是在之前知道要序列化/反序列化什么,如果只知道objectIComparable,这是不可能的。

上周,我在GitHub的一期文章中更详细地谈到了这种情况,包括关于如果是我,我将如何代表这种情况的建议,这实际上可以归结为";作为我所期望的实际类型的区别结合";。我还将创建一个单独的DTO模型,并序列化的,而不是尝试序列化我预先存在的类型,然后在它们之间进行映射。

最新更新