개체가 C#의 XML 파일에서 deserialize되었는지 여부를 알 수있는 방법이 있습니까? 내가 deserialized 경우 내 개체에 사후 처리를 할 싶어요. 기능이나 속성이 제공합니까?XML에서 deserialization으로 객체가 형성되었는지 어떻게 알 수 있습니까?
1
A
답변
2
"XmlSerializer
"을 의미하는 경우 : 아니오, 대개는 아닙니다.
"직렬화 콜백"의 개념은 (사전 직렬화, 후 직렬화, 사전 직렬화, 후 직렬화를) 존재하고 잘 을 제외하고 ... 이해하고 대부분의 지역에서 내가 생각할 수있는 모든 시리얼을 지원XmlSerializer
, 지원하지 않음 전혀입니다. XmlSerializer
에있는 주 인터 셉션 포인트는 타입이 IXmlSerializable
을 구현하는 경우이지만, 수행하면 모두 일을 스스로 수행해야합니다. 하드 (더하기 스키마 지원을 잃게 됨)입니다.
가장 좋은 방법은 Deserialize
을 호출 한 후 명시 적으로 메소드를 실행하는 것입니다. 이 제네릭해야 할 경우, 아마도, 인터페이스에 메소드를 넣어 있도록 역 직렬화 코드 기본적으로 수행합니다
var newObj = serializer.Deserialize(source);
var forCallback = newObj as ISerializationCallbacks; // <== you define this
if(forCallback != null) forCallback.AfterDeserialize();
return newObj;
감사합니다,하지만 어떻게 내부 개체에 대한? – user2302005
@ user2302005 변경되지 않은 경우 사용자가 변경할 수 없습니다. 물론 내가 완전히 틀린 것이 아니라면. 자, 나무를 수동으로 탐색 할 수 있습니다. –