如何使XmlSerializer.Deserialize更严格?

时间:2009-10-28 16:24:46

标签: c# xml xml-serialization

我有一些非常相似的XML结构实际上是截然不同的,但看起来XmlSerializer.Deserialize是非常“宽容”的,并且它将不再采用XML并反序列化为我创建的强类型对象源XSD。有没有办法让它更严格或做某种更深层次的验证?

// Locals
var serializer = new XmlSerializer(typeof(SomeCustomType));

// Set
var someInstance = serializer.Deserialize(new StringReader(xmlString.ToString()))

@Jeff因为根节点类似,所以它会反序列化为完全不同的对象。想象一下,你有一个房子,汽车和船,它们都共享一个名为item的基本根节点,它有一些属性。即使子节点无效且未共享,它似乎也忽视并原谅了这一点。

@Will我不想验证XSD。我想以某种方式使Deserializer看到它所拥有的数据不应该被错误地转换为错误的Object类型。

2 个答案:

答案 0 :(得分:0)

问题是XML输入不正确。

答案 1 :(得分:0)

我曾经使用验证读者来验证XML与模式的对比,因为我将其读入反序列化器。

相关问题