在MSDN中,它表示xml反序列化非常宽容,如果 反序列化的XML文档与对象不完全匹配。 只有少数错误条件会导致异常 反序列化过程。最常见的是:
- 根元素的名称或其命名空间与预期名称不匹配。
- 枚举数据类型显示了未定义的值。
- 该文档包含非法XML。
我想知道还有什么情况会导致xml反序列化异常?
我发现这可能是正确的:如果为原子元素指定了一个值(该元素的类型无法再扩展),并且该值不能从string
隐式转换为元素(例如int
,double
等),它将引发异常。
示例:
xml:<Class1><X1>Foo</X1></Class1>
班级:
public class Class1 {
public int X1;
}
由于xml
中的值为Foo
,并且无法将Foo
转换为int,因此将引发异常。但是xml反序列化将原谅这一点:
Foo
更改为10
(任何int值)。public int X1
更改为public Class2 X1
,Class2
是一个新类,XML会原谅。但是这些都是我的猜测:(