什么会导致XML反序列化异常?

时间:2018-11-27 06:27:59

标签: c# xml deserialization

  

MSDN中,它表示xml反序列化非常宽容,如果   反序列化的XML文档与对象不完全匹配。   只有少数错误条件会导致异常   反序列化过程。最常见的是:

     
      
  1. 根元素的名称或其命名空间与预期名称不匹配。
  2.   
  3. 枚举数据类型显示了未定义的值。
  4.   
  5. 该文档包含非法XML。
  6.   

我的问题

我想知道还有什么情况会导致xml反序列化异常?

我的探索

我发现这可能是正确的:如果为原子元素指定了一个值(该元素的类型无法再扩展),并且该值不能从string隐式转换为元素(例如intdouble等),它将引发异常。

示例: xml:<Class1><X1>Foo</X1></Class1>

班级:

public class Class1 {
    public int X1;
}

由于xml中的值为Foo,并且无法将Foo转换为int,因此将引发异常。但是xml反序列化将原谅这一点:

  1. 将值Foo更改为10(任何int值)。
  2. public int X1更改为public Class2 X1Class2是一个新类,XML会原谅。

但是这些都是我的猜测:(

0 个答案:

没有答案