【发布时间】:2013-05-05 21:17:53
【问题描述】:
遇到了protobuf-net,太棒了!我有一个关于空列表序列化的问题。
我首先声明我要序列化的对象:
[ProtoContract]
class TestClass
{
[ProtoMember(1)]
List<int> _listOfInts = new List<int>();
public TestClass() { }
public List<int> ListOfInts
{
get { return _listOfInts; }
set { _listOfInts = value; }
}
}
如果我反序列化时 _listOfInts 为空(但不为空),则此对象将始终为空。看看 protobuf 约定是有道理的,我目前通过添加以下方法来解决这个问题:
[ProtoAfterDeserialization]
private void OnDeserialize()
{
if (_listOfInts == null)
_listOfInts = new List<int>();
}
我的问题是我是否可以以更简洁的方式实现相同的功能,可能还有一个额外的属性将 null/empty 对象初始化为空而不是 null?
【问题讨论】:
标签: c# protobuf-net