protobuf-netを介して来た、すばらしい!空リストのシリアライゼーションに関する質問があります。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; }
}
}
私は、このオブジェクトは常にnullになりますですdeserialseとき_listOfIntsが空(ただし、nullではない)である場合
。これはいるProtobuf大会を見て理にかなっていると私は現在、次のメソッドを追加することでこの問題を回避:[ProtoAfterDeserialization]
private void OnDeserialize()
{
if (_listOfInts == null)
_listOfInts = new List<int>();
}
私の質問は、私はその意志追加attirbuteで、おそらく、より簡潔な形でこれと同じ機能を実現することができるかどうかでありますヌルの代わりにヌル/空のオブジェクトを空に初期化しますか?
これは私が考えなかった可能性がありますもし私ができればあなたに投票します。私はまだ主に興味がありますが、それは私のためにこれを行うだろう属性があるかどうかを知ることです。 – CanCan
[DefaultValue]属性を試しましたか?あなたがリストを初期化できるかどうかは分かりませんが、試してみる価値があります。 – Jras
@Jras私はそのような追加を検討しましたが、それを見るたびに、実際に人々のコードを悪化させるようになりました。 –