#c# #xml #deserialization #xmlserializer #serialization
#c# #xml #десериализация #xmlserializer #сериализация
Вопрос:
При поиске в SO способа десериализации XML постоянно появляется следующее:
XmlSerializer serializer = new XmlSerializer(typeof(MyClass));
но когда я вставляю его в свой код, я получаю прекрасную красную строку под typeof(MyClass), в которой указано, что:
Argument 1: Cannot convert from 'System.Type' to 'bool'
Argument type 'System.Type' is not assignable to parameter type 'bool'
Что ж, это здорово.. Поскольку все вы, ребята, умудряетесь заставить это работать. MyClass выглядит так, кстати:
public class MyClass
{
public Blabla[] Bla {get; set;}
public SomethingElse[] Som {get; set;}
}
Кто-нибудь, кто может дать мне подсказку о том, что я делаю не так?
Комментарии:
1. Щелкните правой кнопкой мыши на XmlSerializer и выберите Перейти к определению. Держу пари, это не тот XmlSerializer, о котором вы думаете.
2. Почему у вас нет указанного
[Serializable()]
выше вашего класса? А что такоеBlabla[]
иSomethingElse[]
?3. Потому что ему это не нужно для XML-сериализатора?
4. святой…. Я чувствую себя довольно глупо прямо сейчас … Спасибо…
5. @Will прав. Я использовал неправильный XmlSerializer…
Ответ №1:
Ответ: Как прокомментировал Уилл, XmlSerializer был не тем, что я думал. Я использовал один из пространства имен ServiceStack вместо System.Xml.Serialization — который является правильным.
Нажатие клавиши F12 (с помощью ReSharper) для класса также укажет на это.