Estoy intentando serializar y deserializar un ReadOnlyCollection
usando protobuf-net. Sin embargo, se produce una excepción al deserializar cuando protobuf-net intenta convertir una Lista en una ReadOnlyCollection.protobuf-net: no se puede deserializar 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()));
¿Hay una manera de mantener esto como un ReadOnlyCollection
en lugar de serializar/deserializar como List
? En la aplicación real, el ReadOnlyCollection
es una parte de un objeto inmutable que deseo serializar, y preferiría mantenerlo como ReadOnlyCollection
.
Ooh, eso es intrigante. * en este momento * Tendría que decir simplemente "no, eso no funcionará", pero puedo pensar en algunas maneras en que podría modificarlo para que * funcione *. Sin embargo, serían cambios en el núcleo de deserialización. Es posible que desee registrar esto como una solicitud de función en protobuf-net. –
He agregado un [problema] (http://code.google.com/p/protobuf-net/issues/detail?id=254) para esto y una posible solución, pero me olvidé de cambiar el tipo de problema para que sea listado como un defecto Doh! – Mark
Vi. Gracias. Lo haré, pero tenga en cuenta que protobuf-net no es mi trabajo diario, por lo que podría tomar un par de días para obtener una visión adecuada de él. –