Что вызовет исключение десериализации XML? - PullRequest
0 голосов
/ 27 ноября 2018

В MSDN говорится, что десериализация xml очень прощает , если десериализованный XML-документ не совпадает с объектом.Существует только несколько состояний ошибок, приводящих к исключениям во время процесса десериализации.Наиболее распространенные из них:

  1. Имя корневого элемента или его пространства имен не соответствует ожидаемому имени.
  2. Перечислимый тип данных имеет неопределенное значение.
  3. Документ содержал недопустимый XML.

Мой вопрос

Я хочу знать, какие еще ситуации вызовут исключение десериализации xml?

Мое исследование

Я понял, что это может быть правдой: если значение, указанное для атомарного элемента (тип этого элемента больше не может расширяться), и значение не может неявно преобразоваться из string в типэлемент (например, int, double и т. д.) выдает исключение.

Пример: xml: <Class1><X1>Foo</X1></Class1>

class:

public class Class1 {
    public int X1;
}

Поскольку значение в xml равно Foo, и оно не может преобразовать Foo в целое число, будет сгенерировано исключение.Но десериализация xml простит:

  1. Измените значение Foo на 10 (любое значение типа int).
  2. Измените public int X1 на public Class2 X1, Class2это новый класс, XML его простит.

Но это все мое предположение: (

...