Из чтения, которое я сделал, у меня сложилось впечатление, что DataContractSerializer обрабатывает проблемы с версией, если членов в запросе нет, он установит значение по умолчанию, и если дополнительные члены находятся в запросе, но не в определении, сериализатор просто игнорирует эти поля и не обрабатывает их.
Во-первых, правильно ли это предположение?
Во-вторых, могли бы вы использовать этот DataContractSerializer вместо XMLSerializer, чтобы добавить эту возможность управления версиями к старым веб-службам asmx? В принципе, если вы добавляете новых участников в запрос схемы веб-службы, вам не нужно будет отправлять его каждому клиенту? Когда вы получаете запрос от клиента, вы можете десериализовать его с помощью DataContractSerializer в свой объект.
Надеюсь, это имеет смысл





Вы можете использовать DataContractSerializer вне WCF для ручной десериализации и сериализации графов объектов. Однако вы не можете указать ASMX использовать сериализатор. Вам гораздо лучше просто заменить свои службы ASMX службами WCF.
Я использовал сериализатор DataContract для импорта файлов xml, он отлично работает.