Возможность выполнения действий до / после сериализации / десериализации обеспечивается атрибутами. Пометьте метод с помощью OnDeserializedAttribute , чтобы он вызывался после десериализации экземпляра, просто убедитесь, что метод имеет правильную сигнатуру:
[OnDeserializedAttribute()]
private void RunThisMethod(StreamingContext context) {
// ...
}
NB. Этот атрибут работает для форматеров Binary, SOAP и DataAttribute, но не для XmlSerializer. Нет другого атрибута или механизма, кроме реализации IXmlSerializable.
Также не забывайте, что вы можете читать XML-документы напрямую и писать код для (де) сериализации.
Оригинальный ответ:
Если вам необходимо полностью переопределить один из вариантов сериализации или десериализации (и, таким образом, реализовать IXmlSerializable
, то вы должны сделать оба самостоятельно.
Может быть возможно использовать атрибуты и другие механизмы, чтобы избежать использования IXmlSerializable
. Вы можете расширить вопрос подробностями , почему вам нужно реализовать только один из ReadXml
или * 1020? *.