기본 클래스는 Serializable
이고, 파생 클래스는 Serializable
으로 표시되어 있습니다. deserialization 중에 기본 클래스에서 무언가를 수행하고 싶습니다. 따라서 OnDeserializing
으로 표시된 메서드를 선언했지만이 메서드는 파생 클래스의 OnDeserializing
메서드보다 먼저 실행해야합니다.
파생 클래스는 다른 사용자도 작성할 수 있습니다.
파생 클래스에서 모든 serialization 메서드보다 먼저 기본 클래스의 메서드를 호출 할 수 있습니까?
SoapFormatter
을 사용할 예정입니다.상속 트리를 통한 직렬화 해제 순서
답변
저는 사지에 나가서 다른 목적으로 리플렉션을 사용하여 보았던 것을 기반으로하는 기본 방법보다는 파생 된 방법을 먼저 찾아 낼 것이라고 말합니다. 속성으로 표시된 메소드의 순서에 의존하지 않고 자식으로부터 기본 동작을 명시 적으로 호출하고자 할 수도 있습니다. 하위 수준의 개체가 추상이 아닌 직접 인스턴스화 가능하고 OnDeserializing이 표시된 메서드가있을 수있는 경우 해당 수준이 이미 처리되었는지 여부를 나타내는 플래그를 설정해야 할 수도 있습니다.
작성하는 것을 잊었지만 파생 클래스는 다른 사람들이 만들 수 있으므로 제어 할 수 없습니다. 어쨌든 중요한 정보를 가져 주셔서 감사합니다. 매우 도움이됩니다. – RoadBump
@RoadBump 명시 적으로 기본 클래스 코드를 호출하는 것을 포함하여 상속 클래스에 제어를 부여하는 방식으로 재정의 할 수있는 단일 메서드를 사용하는 것이 좋습니다. – tvanfosson
좋은 생각 같네요. 나는 특별한 생성자를 필요로하는'ISerializable' 인터페이스를 구현할 것을 고려했다. [here] (http://www.diranieh.com/netserialization/binaryserialization.htm#Custom%20Serialization)를 보라. 생성자를 사용하면 파생 클래스의 직렬화에 앞서 기본 클래스의 ctor가 호출 될 것입니까? – RoadBump
- 1. 직렬화/직렬화 해제 가능
- 2. .NET의 직렬화 - Android의 직렬화 해제
- 3. Z3 컨텍스트 직렬화/직렬화 해제?
- 4. Xml 직렬화/직렬화 해제 문제
- 5. JAXB를 통한 상속
- 6. 직렬화 해제 유효성 검사
- 7. JSON 직렬화 해제 문제
- 8. 대형 객체 단일 시간 직렬화/직렬화 해제 작은 객체를 여러 번 직렬화/직렬화 해제 하시겠습니까?
- 9. has_one 연관을 통한 순서
- 10. C#을 직렬화/상속
- 11. java 직렬화 및 상속
- 12. .Net 이진 직렬화 상속
- 13. 상속 목록 및 직렬화
- 14. C++의 XML 직렬화/직렬화 해제
- 15. jQuery - 직렬화 된 문자열의 직렬화 해제
- 16. 항목 당 XML 직렬화/직렬화 해제
- 17. HashMap 직렬화 및 직렬화 해제 변경
- 18. XML과 직렬화/직렬화 해제 용 이진 성능
- 19. .NET에서 Java 직렬화/직렬화 해제 호환성
- 20. 부분 빈 직렬화 및 직렬화 해제 + 병합
- 21. Wxpython : TreeCtrl : 트리를 통한 반복
- 22. 네트워크를 통한 Java 직렬화
- 23. WCF를 통한 예외 직렬화
- 24. XML 직렬화/역 직렬화 이름과 상속
- 25. 유창한 nhibernate를 통한 상속
- 26. 슈퍼 클래스를 통한 직렬화/비 직렬화
- 27. LinqtoNh 필터/순서 절 직렬화
- 28. C#에서 직렬화 순서 제어
- 29. 단일 테이블 상속 삽입 순서
- 30. int리스트를 포함하고있는 오브젝트를 직렬화 해제
IFormatter를 사용하고 있습니다. 몇 가지 이유로 XmlSerializer와 같은 직렬화기를 사용할 수 없습니다. – RoadBump
또 다른 유용한 질문 [여기] (http://stackoverflow.com/questions/4023644/can-ondeserializedattribute-be-used-instead-of-ideserializationcallback-interfac). 내 테스트에서 주문은'Base.OnDeserializing','Derived.OnDeserializing','Base.OnDeserialized','Derived.OnDeserialized'이지만, 객체 그래프의 정확한 구조에 의존 할 수 있습니다. – RoadBump