Sto provando a serializzare e deserializzare uno ReadOnlyCollection
utilizzando protobuf-net. Tuttavia, viene lanciata un'eccezione alla deserializzazione quando protobuf-net tenta di lanciare una lista in una raccolta ReadOnlyCollection.protobuf-net: Impossibile deserializzare ReadOnlyCollection
var roc = new ReadOnlyCollection<byte>(new byte[] {1, 2, 3});
var ms = new MemoryStream();
Serializer.Serialize(ms, roc);
ms.Position = 0;
var roc2 = Serializer.Deserialize<ReadOnlyCollection<byte>>(ms);
Console.WriteLine(BitConverter.ToString(roc2.ToArray()));
C'è un modo per mantenere questo come un ReadOnlyCollection
piuttosto che la serializzazione/deserializzazione come List
? Nell'applicazione effettiva, lo ReadOnlyCollection
fa parte di un oggetto immutabile che desidero serializzare e preferirei mantenerlo come ReadOnlyCollection
.
Ooh, è intrigante. * in questo momento * Dovrei semplicemente dire "no, non funzionerà", ma posso pensare ad alcuni modi in cui potrei modificarlo per * far funzionare *. Sarebbe tuttavia un cambiamento nel nucleo di deserializzazione. Si potrebbe voler registrare questo come richiesta di funzionalità su protobuf-net. –
Ho aggiunto un [problema] (http://code.google.com/p/protobuf-net/issues/detail?id=254) per questo e una possibile correzione, ma ho dimenticato di cambiare il tipo di problema in modo che sia elencato come un difetto. Doh! – Mark
Ho visto. Grazie. Ci arriverò, ma tieni a mente che protobuf-net non è il mio lavoro giornaliero, quindi potrebbero volerci un paio di giorni per dargli un'occhiata. –