Próbuję serializować i deserializować ReadOnlyCollection
przy użyciu protobuf-net. Jednak wyjątek jest generowany podczas deserializacji, gdy protobuf-net próbuje umieścić listę w ReadOnlyCollection.protobuf-net: Nie można deserializować 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()));
Czy istnieje sposób, aby zachować to jako ReadOnlyCollection
zamiast szeregowania/deserializacji jako List
? W rzeczywistej aplikacji, ReadOnlyCollection
jest częścią niezmiennego obiektu, który chcę przekształcić do postaci szeregowej, i wolałbym zachować go jako ReadOnlyCollection
.
Ooh, to intrygujące. * właśnie teraz * Chciałbym powiedzieć po prostu "nie, to nie zadziała", ale mogę wymyślić kilka sposobów, w jakie mogę go ulepszyć, aby * działało *. Byłoby to jednak zmiana w rdzeniu deserializacji. Możesz to zarejestrować jako żądanie funkcji na protobuf-net. –
Dodałem [wydanie] (http://code.google.com/p/protobuf-net/issues/detail?id=254) do tego i możliwą poprawkę, ale zapomniałem zmienić typ problemu, aby wymienione jako wada. Doh! – Mark
Widziałem. Dzięki. Dołożę do tego, ale proszę pamiętać, że protobuf-net nie jest moją codzienną pracą - więc może to potrwać kilka dni, zanim się na to poprawi. –