我无法弄清楚如何让 protobuf-net 序列化从 List<T> 派生的对象。我尝试添加 ProtoInclude 属性,但收到ProtoBuf.ProtoException :ProtoIncludeAttribute 的已知类型列表`1 必须是 UserTypeCollection 的直接子类。当我删除 ProtoInclude 属性时,似乎数据根本没有被序列化。我似乎在任何地方都找不到这种情况的任何例子。我正在添加 protobuf 序列化作为 WS api 的一个选项,并且需要保持与 DataContractSerializer 的兼容性。
[CollectionDataContract(), ProtoContract(InferTagFromName = true)]
[ProtoInclude(100, typeof(List<UserType>))]
public class UserTypeCollection : List<UserType>
{ ... }
[DataContract(), ProtoContract(InferTagFromName = true)]
public class UserType { ... }