XmlDocument.Validate игнорировать свойства без [XmlIgnore]

У меня есть объект, у которого есть ряд свойств, которых нет в файле xsd. При выполнении XmlDocument.Validate могу ли я сказать ему, чтобы он игнорировал свойства, которых нет в xsd, и вместо этого просто проверял, что свойства, требуемые xsd, присутствуют в xml-документе?

Я могу обойти это, добавив атрибуты [XmlIgnore] по всему моему классу, но я бы предпочел сделать это по соглашению, а не явно добавлять атрибуты по всей моей объектной модели.


person Sean Chambers    schedule 23.11.2009    source источник


Ответы (1)


Я сомневаюсь, что есть. Лично я бы создал отдельный DTO, поскольку похоже, что вы пытаетесь заставить один объект обслуживать две работы. Другой вариант - использовать XmlSerializer ctor, который позволяет вам указывать атрибуты во время выполнения, но это гораздо больше работы, чем [XmlIgnore].

Итак, если вы просто хотите, чтобы это работало: [XmlIgnore]. Если вы хотите, чтобы он был «чистым», создайте вторую модель DTO и транслируйте между ними.

person Marc Gravell    schedule 23.11.2009
comment
создание второй модели будет работать, но это в моей реальной модели предметной области и предназначено для сохранения внутри компании, поэтому создание полной дублирующей модели - это немного излишне. блерг. в любом случае спасибо - person Sean Chambers; 23.11.2009
comment
Я так и предполагал - и это нормально, пока отображение 1: 1, но когда вы начинаете дрейфовать между ними, часто легче сократить свои потери и разделить типы / ответственность. В противном случае вы будете регулярно с этим бороться. - person Marc Gravell; 23.11.2009