powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / xml десериализация сломала мне мозг, кто подскажет..
6 сообщений из 6, страница 1 из 1
xml десериализация сломала мне мозг, кто подскажет..
    #39119506
Фотография flashslash
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!
Коротко:
есть простейший xml, я пытаюсь его преобразовать в объект... для которого есть два класса-модели. Однако после преобразования
Код: c#
1.
var result = Common.XmlToObject<List<Istoriya_soglasovaniya_with_files2>>(s1, out err1);


я получаю result абсолютно пустой..

Вопрос - что не так?


модели:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    public class Istoriya_soglasovaniya_with_files2
    {
        [XmlElement(ElementName = "Istoriya_soglasovaniya_ext2")]
        public Istoriya_soglasovaniya_ext2 istoria { get; set; }
    }
    public class Istoriya_soglasovaniya_ext2
    {
        [XmlElement(ElementName = "id")]
        public int id { get; set; }
    }




вот сам Xml:
Код: c#
1.
2.
3.
4.
5.
6.
  private static string ssss0 = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" +
          "<ArrayOfIstoriya_soglasovaniya_with_files2>" +
            "<Istoriya_soglasovaniya_ext2>" +
              "<id>1</id>" +
            "</Istoriya_soglasovaniya_ext2>" +
          "</ArrayOfIstoriya_soglasovaniya_with_files2>";




код метода преобразования:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
static void Main(string[] args)
        {
            try
            {
                var err1 = "";
                var s1 = ssss0;
              

                var result = Common.XmlToObject<List<Istoriya_soglasovaniya_with_files2>>(s1, out err1);

          //result получается пустым, а должен быть в одним объектом внутри..
          //почему ???

out err1);
            }
            catch(Exception exp)
            {
                string s = exp.Message;
            }
        }



Xml в объект:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
        public static T XmlToObject<T>(string xml, out string ErrorMessage)
        {
            ErrorMessage = "";
            StringReader stream = null;
            XmlTextReader reader = null;
            try
            {
                XmlSerializer serializer = new XmlSerializer(typeof(T));
                stream = new StringReader(xml);
                // read xml data
                reader = new XmlTextReader(stream);
                // create reader 
                return (T)serializer.Deserialize(reader);
            }
            catch (Exception exp)
            {
                ErrorMessage = exp.Message; throw;
            }
            finally
            {
                if (stream != null) stream.Close();
                if (reader != null) reader.Close();
            }
        }
...
Рейтинг: 0 / 0
xml десериализация сломала мне мозг, кто подскажет..
    #39119515
Фотография flashslash
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кажется я понял...

десериализация в моем случае почему-то не работает
в случае сложных объектов типа... когда список объектов является свойством того самого объекта, который надо десерилизовать.
Как тут быть?
есть рецепт?
...
Рейтинг: 0 / 0
xml десериализация сломала мне мозг, кто подскажет..
    #39119516
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наркоман штоле? кто такие названия делает? убил бы за такое на работе

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
[XmlRoot("ArrayOfIstoriya_soglasovaniya_with_files2")]
public class ArrayOfIstoriya_soglasovaniya_with_files2
{
[XmlElement("Istoriya_soglasovaniya_ext2")]
public List<Istoriya_soglasovaniya_ext2> Istoriya_soglasovaniya_ext2 { set; get; }
}
    public class Istoriya_soglasovaniya_ext2
    {
        [XmlElement("id")]
        public int id { get; set; }
    }
...
Рейтинг: 0 / 0
xml десериализация сломала мне мозг, кто подскажет..
    #39119531
Фотография flashslash
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes,

от наркомана слышу!
в примере ессно нерабочий код..код для форума!
убивайтесь сами об стенку!
...
Рейтинг: 0 / 0
xml десериализация сломала мне мозг, кто подскажет..
    #39119549
Фотография flashslash
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ошибку нашел...она заключается в том, что ArrayOfIstoriya_soglasovaniya_ext2 - это и есть
интерпретация List<Istoriya_soglasovaniya_ext2>
ошибочным было ожидать в ArrayOfIstoriya_soglasovaniya_ext2 единичный объект...
то есть для таких случаев xml должен иметь иную структуру.

тема закрыта!
...
Рейтинг: 0 / 0
xml десериализация сломала мне мозг, кто подскажет..
    #39123271
Фотография Belavik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
flashslash ArrayOfIstoriya_soglasovaniya_ext2
Попробуйте переименовать в MassivIstoriya_soglasovaniya_ext2
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / xml десериализация сломала мне мозг, кто подскажет..
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]