XmlSerializer не поддерживает обратные вызовы сериализации. Одним из вариантов является использование IXmlSerializable, но это много работы. В некоторых простых случаях DataContractSerializer может быть жизнеспособным вариантом; он поддерживает cllbacks, но не поддерживает столько сценариев XML (в первую очередь, без атрибутов).
Вам может не повезти, и в этом случае рассмотрите отдельный DTO и тип домена. Например, вы можете десериализовать в FooDto
, а затем скопировать значения в Foo
, указав вручную, что это происходит через сериализацию.