2009-11-23 2 views
1

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

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

ответ

1

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

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

+0

создание второй модели будет работать, но это в моей реальной модели домена и предназначено для настойчивости в собственном орме, поэтому немного переборщить, чтобы создать целую дублирующую модель. blerg. спасибо anyways –

+1

Я догадался, как много - и это нормально, пока картирование составляет 1: 1, но когда вы начинаете дрейфовать между ними, часто легче сократить свои потери и разделить типы/ответственность. В противном случае вы будете бороться с ним регулярно. –