9
protobuf-net을 사용하여 ReadOnlyCollection
을 직렬화 및 비 직렬화하려고합니다. 그러나 protobuf-net이 List를 ReadOnlyCollection으로 캐스팅하려고 시도 할 때 deserialization 할 때 예외가 발생합니다.protobuf-net : ReadOnlyCollection을 deserialize하지 못했습니다.
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()));
ReadOnlyCollection
으로이 계속보다는 List
로/역 직렬화를 직렬화하는 방법이 있나요? 실제 응용 프로그램에서 ReadOnlyCollection
은 serialize하려는 불변 개체의 일부이며 ReadOnlyCollection
으로 유지하는 것이 좋습니다.
오, 흥미 롭습니다. * 지금 당장 * "간단히 말해서 효과가 없을 것"이라고 말해야 하겠지만, 나는 그것을 작동 시켜서 * 만들 수있는 몇 가지 방법을 생각할 수 있습니다. 그래도 직렬화 해제 코어로 변경됩니다. protobuf-net에 기능 요청으로 기록 할 수 있습니다. –
이 문제와 가능한 수정을 위해 [문제] (http://code.google.com/p/protobuf-net/issues/detail?id=254)를 추가했지만 문제 유형을 변경하는 것을 잊었습니다. 결함으로 나열됩니다. 도! – Mark
나는 보았다. 감사. 나는 그것을 얻을 것이다. 그러나 protobuf-net은 나의 직업이 아니라는 것을 명심해라 - 그래서 그것을 적당히 들여다 보는데 며칠이 걸릴 것이다. –