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 が空 (null ではない) の場合、このオブジェクトは常に null になります。これは protobuf 規則を見ると理にかなっています。私は現在、次のメソッドを追加することでこれを回避しています。
[ProtoAfterDeserialization]
private void OnDeserialize()
{
if (_listOfInts == null)
_listOfInts = new List<int>();
}
私の質問は、null/空のオブジェクトをnullではなく空として初期化する追加の属性を使用して、これと同じ機能をより簡潔な方法で実現できるかどうかです?