에 저장된 A
클래스의 개체 컬렉션을 serialize하려면 BinaryFormatter
을 사용하고 있습니다. [Serializable]
태그를 추가했으며 A
(GetObjectData
과 특수 생성자 모두)에 ISerializable
을 구현했습니다. deserialize 할 때 목록이 deserialize되고 직렬화 된 것과 동일한 수의 요소를 포함한다는 것을 알게되었습니다. 그러나 이러한 각 요소는 null 참조입니다.사용자 지정 .NET 직렬화가 작동하지 않는 것 같습니다.
예외가 있는지 확인하고 예외가 아닌지 확인했습니다. deserialization 중에 올바른 양식 번호가 A(SerializationInfo ^info, StreamingContext context)
이라는 특수 생성자가 호출되었는지 확인했지만이 재구성 된 개체는 이 아니며 비 순차화 된 컬렉션에서 참조되는 것은입니다.
또한 System::Collections::Generic::List<A^>^
을 array<A^>^
으로 바꿨으며 여전히 동일한 결과가 나타납니다. 배열의 요소 수는 정확하지만 각 요소는 null 참조입니다.
비슷한 문제가있는 사람은 누구입니까? 모든 단서?
이러한 종류의 질문에는 샘플 코드가 항상 유용합니다. –
GetObjectData 메서드에서 ToArray()를 호출하고 있습니까? 나는 serialization 과정을 지나치게 생각하고 이와 동일한 행동을 시도했을 때 과거에 그 실수를 저질렀습니다. – Kleinux
Kleinux, ToArray()를 호출하지는 않았지만 일단 작동하는지 확인하기 위해 시도했습니다. 그런 행운은 없습니다. –