我正在尝试在我的项目中使用ProtoBuf-NET(它主要是Silverlight 4项目).
我在序列化我的模型集合时遇到了困难,它们都是这样定义的:
private List<T> _itemsSet;
public IEnumerable<T> TSet
{
get {return _itemsSet;}
set {_itemsSet = value == null ? new List<T>() : new List<T>(value);}
}
public void AddT(T item)
{
//Do my logic here
_itemsSet.Add(item);
}
Run Code Online (Sandbox Code Playgroud)
更新:首先我不能序列化它 - No serializer defined for type: System.Collections.Generic.IEnumerable1 [MyType]`.其次,我认为我将无法根据手动和protobuf-net源代码分析来绝对它.
ProtoMember(1, OverwriteList=true)不起作用?它不是要覆盖收集而不应该关心Add<T>()方法吗?为什么它只是不尝试将此属性设置为T [] List<T>或任何可分配的设置IEnumerable<T>?public interface IReflectable{ object GetValue(FieldInfo field); void SetValue(FieldInfo field, object value);
}使用私有字段.我使用这种方法与Db4o的私有字段一起工作:http://community.versant.com/Forums/tabid/98/aft/10881/Default.aspxMyTypeCollection<T> : …