В MSDN говорится, что десериализация xml очень прощает , если десериализованный XML-документ не совпадает с объектом.Существует только несколько состояний ошибок, приводящих к исключениям во время процесса десериализации.Наиболее распространенные из них:
- Имя корневого элемента или его пространства имен не соответствует ожидаемому имени.
- Перечислимый тип данных имеет неопределенное значение.
- Документ содержал недопустимый XML.
Мой вопрос
Я хочу знать, какие еще ситуации вызовут исключение десериализации xml?
Мое исследование
Я понял, что это может быть правдой: если значение, указанное для атомарного элемента (тип этого элемента больше не может расширяться), и значение не может неявно преобразоваться из string
в типэлемент (например, int
, double
и т. д.) выдает исключение.
Пример: xml: <Class1><X1>Foo</X1></Class1>
class:
public class Class1 {
public int X1;
}
Поскольку значение в xml
равно Foo
, и оно не может преобразовать Foo
в целое число, будет сгенерировано исключение.Но десериализация xml простит:
- Измените значение
Foo
на 10
(любое значение типа int). - Измените
public int X1
на public Class2 X1
, Class2
это новый класс, XML его простит.
Но это все мое предположение: (