來到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