È venuto attraverso protobuf-net, fantastico! Ho una domanda riguardante la serializzazione delle liste vuote.Protobuf-Net Lista vuota
comincio dichiarando l'oggetto che voglio serializzare:
[ProtoContract]
class TestClass
{
[ProtoMember(1)]
List<int> _listOfInts = new List<int>();
public TestClass() { }
public List<int> ListOfInts
{
get { return _listOfInts; }
set { _listOfInts = value; }
}
}
Se _listOfInts è vuoto (ma non nullo) quando ho deserialse questo oggetto è sarà sempre nullo. Questo ha senso guardare alla convention protobuf e attualmente aggirare questo aggiungendo il seguente metodo:
[ProtoAfterDeserialization]
private void OnDeserialize()
{
if (_listOfInts == null)
_listOfInts = new List<int>();
}
La mia domanda è se posso realizzare questa stessa funzionalità in modo più conciso, possibilmente con un attirbute addizionale che sarà inizializzare oggetti null/vuoti come vuoti anziché null?
Questa è una possibilità che non avevo considerato, avrei votato se potessi. Sono ancora interessato principalmente a sapere se c'è un attributo che farebbe questo per me però. – CanCan
Hai provato l'attributo [DefaultValue]? Non sono sicuro di poter inizializzare gli elenchi, ma vale la pena provare. – Jras
@Jras Ho pensato di aggiungere tale, ma ogni volta che l'ho guardato, si scopre che in realtà peggiorano il codice delle persone, non meglio –