Kam über Protobuf-Net, genial! Ich habe eine Frage bezüglich der Serialisierung von leeren Listen.Protobuf-Net Empty Liste
Ich beginne, indem das Objekt deklarieren ich serialisieren möchten:
[ProtoContract]
class TestClass
{
[ProtoMember(1)]
List<int> _listOfInts = new List<int>();
public TestClass() { }
public List<int> ListOfInts
{
get { return _listOfInts; }
set { _listOfInts = value; }
}
}
Wenn _listOfInts leer ist (aber nicht null), wenn ich das Objekt deserialse wird immer null sein. Dies macht Sinn, an der protobuf Konvention suchen, und ich arbeite zur Zeit um den durch die folgende Methode hinzu:
[ProtoAfterDeserialization]
private void OnDeserialize()
{
if (_listOfInts == null)
_listOfInts = new List<int>();
}
Meine Frage ist, ob ich die gleiche Funktionalität in einer prägnanten Art und Weise erreicht werden kann, möglicherweise mit einem zusätzlich attirbute die Initialisieren Sie leere/leere Objekte als leer statt als null?
Dies ist eine Möglichkeit, die ich nicht in Betracht gezogen hätte, würde Sie abstimmen, wenn ich könnte. Ich bin immer noch primär interessiert zu wissen, ob es ein Attribut gibt, das das für mich tun würde. – CanCan
Haben Sie das Attribut [DefaultValue] versucht? Nicht sicher, ob Sie Listen initialisieren könnten, aber einen Versuch wert. – Jras
@Jras Ich habe darüber nachgedacht, solche hinzuzufügen, aber jedes Mal, wenn ich es angeschaut habe, stellt sich heraus, dass der Code der Leute schlimmer wird, nicht besser –