У меня есть несколько очень похожих XML-структур, которые на самом деле весьма различны, но кажется, что XmlSerializer.Deserialize очень «прощающий» и сделает все возможное, чтобы взять XML и десериализовать в строго типизированный объект, который я создал исходные XSD. Есть ли способ сделать его более строгим или провести более глубокую проверку?
// Locals
var serializer = new XmlSerializer(typeof(SomeCustomType));
// Set
var someInstance = serializer.Deserialize(new StringReader(xmlString.ToString()))
@ Jeff Поскольку корневые узлы похожи, он десериализуется в совершенно разные объекты. Представьте, что у вас есть дом, машина и лодка, и все они имеют общий корневой узел, называемый предметом, с несколькими атрибутами. Несмотря на то, что подузлы недействительны и не разделены, кажется, что это упускает из виду и прощает.
@ Я не хочу проверять XSD. Я хочу как-то заставить Deserializer видеть, что данные, которые он имеет, не должны быть подставлены в неправильный тип объекта.