2013-06-24 1 views

답변

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; 
+0

감사합니다,하지만 어떻게 내부 개체에 대한? – user2302005

+0

@ user2302005 변경되지 않은 경우 사용자가 변경할 수 없습니다. 물론 내가 완전히 틀린 것이 아니라면. 자, 나무를 수동으로 탐색 할 수 있습니다. –