来到protobuf网,真棒!我有一个关于空列表序列化的问题。Protobuf网空列表
我开始通过声明我想要序列化对象:
[ProtoContract]
class TestClass
{
[ProtoMember(1)]
List<int> _listOfInts = new List<int>();
public TestClass() { }
public List<int> ListOfInts
{
get { return _listOfInts; }
set { _listOfInts = value; }
}
}
如果_listOfInts是空的(但不是null),当我deserialse这个对象永远是零。这是有道理的看protobuf的约定,我目前解决此通过添加以下方法:
[ProtoAfterDeserialization]
private void OnDeserialize()
{
if (_listOfInts == null)
_listOfInts = new List<int>();
}
我的问题是我是否可以与附加attirbute将实现更简洁时尚此相同的功能,有可能将空/空对象初始化为空而不是空?
这是我没有考虑过的可能性,如果可以的话,会投票给你。我仍然主要想知道是否有一个属性可以为我做到这一点。 – CanCan 2013-05-05 21:34:56
您是否尝试过[DefaultValue]属性?不知道你是否可以初始化列表,但值得一试。 – Jras 2013-05-05 21:41:00
@Jras我确实考虑过添加这样的内容,但是每次看到它,事实上都会让人们的代码变得更糟,而不是更好 – 2013-05-06 00:06:44