2009-10-24 3 views
1

저는 꽤 큰 객체를 직렬화하려고했습니다. 이 객체는 다양한 데이터를 추적하기 위해 사전을 사용합니다. 나는 이진 포매터를 사용하고 있으며 간섭을 피하거나 아래 레이어에서 코드를 변경해야하는 전체 객체를 쉽게 직렬화 할 수 있기를 원합니다.사전의 직렬화가 객체 깊숙이 임베디드되었습니다.

이 문제를 해결할 방법이 있습니까? 저는 사전을 수동으로 직렬화하고 싶지 않습니다. (다른 사람들이이 문제를 해결하기 위해 본 것처럼).

이 황금 접시를 얻을 해결 한, 안동에서 언급 한 바와 같이)

+0

이진 포맷터 *이 * 사전을 직렬화 할 수는 XML 시리얼의 그것들은 그들을 질식시킵니다. 또는 특정 필드를 이진 직렬화에서 제외 하시겠습니까? –

+0

오케이 .. 이상합니다. 이 사전을 직렬화하려고하면 "MyObject 생성자를 찾을 수 없습니다."라는 메시지가 나타납니다. 이것은 아마도 확장 사전 (사전 에서 파생 된 클래스)이라고 말하기를 놓친 것입니다. 하지만 내부 예외 DictionaryInternal 가리 킵니다 ... 그리고 난 생성자 그래서 ... 나는이 하나 꽤 길을 잃었 어. 아래 괜찮다 번호 : [직렬화] 공개 등급을 MyObject : 사전 , ISerializable 것 { 공개 MyObject를() : 기재() { } 공개 목록 GetIndexes() { 복귀 this.Keys .ToList (); } } – Robin

+0

": ISerializable"이라고 말하면 ISerializable을 구현해야하며 여기에는 (SerializationInfo, StreamingContext)를 취하는 특수 생성자가 포함됩니다. 처음에는 ISerializable을 구현해야합니까? –

답변

0

은 바이너리 시리얼은 한 그래프의 각 객체 직렬화로, 개체 그래프의 모든 객체를 직렬화 할 수 있습니다. 당신이 당신의 객체 그래프에서 객체 문제 진단하는 데 문제가있는 경우 가 직렬화, 당신이 찾아 sertool을 사용할 수 없습니다 :

enter image description here