Tôi muốn triển khai IXmlSerializable trên một lớp và chỉ ghi đè ReadXml hoặc WriteXml, nhưng không phải cả hai. Nếu tôi không triển khai thực hiện IXMLSerializable trên lớp này, XMLSerializer sẽ tự động tuần tự hóa tất cả các thành viên. Tôi muốn hành vi mặc định đó áp dụng cho trường hợp không ghi đè. Tuy nhiên, kể từ khi IXmlSerializable là một giao diện, và không phải là một lớp cơ sở, tôi không chắc chắn làm thế nào để đi về điều đó.Khi triển khai IXmlSerializable, cách chỉ ghi đè ReadXml hoặc WriteXml chứ không phải cả hai?
Ngoài ra, tôi cần phải, trong một trường hợp, thực hiện hành vi mặc định và khi hoàn tất, hãy thêm một số mã phụ. Vì vậy, tôi muốn ghi đè và gọi lại hành vi của lớp 'cơ sở'. Một lần nữa, điều này sẽ là tầm thường nếu có một lớp cơ sở, nhưng không quá tầm thường vì đây là một giao diện.
Cảm ơn!
Đó là một nhu cầu lạ: Vào cuối quá trình deserialization của các lớp nhất định tôi cần phải đăng ký các trường hợp mới được tạo ra. Vì vậy, tôi đã hy vọng: (1) Để lại tuần tự hóa vì nó là, và (2) Ghi đè lên quá trình deserialization và thêm mã đăng ký của tôi. – Eric
Vì vậy, bạn cần một tương đương với OnDeserializedAttribute áp dụng cho XML Serialiser? – Richard
OnDeserialized sẽ thực hiện thủ thuật! Sao chép điều này vào văn bản và tôi sẽ đánh dấu phần này là đã trả lời. – Eric