Сериализация с использованием класса Yaml IEnumerable приводит к странному выводуC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Сериализация с использованием класса Yaml IEnumerable приводит к странному выводу

Сообщение Anonymous »

Десериализуется/сериализуется тип (некоторые части исключаются):

Код: Выделить всё

public class Entry : IEnumerable{
public string name { get; set; }
public List items { get; set; }

public Entry()
{
}

public IEnumerator GetEnumerator()
{
yield return this;
if (items != null && items.Count > 0)
{
foreach (var child in items)
{
foreach (var grandChild in child)
yield return grandChild;
}
}
}

IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
Который представляет собой древовидную иерархию данных без циклических ссылок.

Хотя реализован интерфейс IEnumerable, он реализован для рекурсивного обхода каждой вложенной записи ниже текущей. , это приводит к странному выводу (см. в конце).

Если интерфейс IEnumerable удален, он сериализуется правильно.

Десериализация обычно работает в обоих направлениях (из исходных данных).

Никаких ошибок и предупреждений.

Поэтому мой вопрос: это ошибка или я делаю что-то ужасно неправильно. Любая информация приветствуется.

Результат (частичный):

Код: Выделить всё

- &o0
- *o0
- &o1
- *o1
- &o2
- *o2
- &o3
- *o3
- &o4
- *o4
- &o5
- *o5
- &o6
- *o6
- &o7
- *o7
- *o4
- *o5
- *o6
- *o7
- *o3
Ожидаемый результат (частичный):

Код: Выделить всё

- name: Runtime
items:
- name: Util
items:
- name: NaturalStringComparer
items:


Подробнее здесь: https://stackoverflow.com/questions/589 ... ird-output
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Юникод из строкового литерала и из файла приводит к странному поведению
    Anonymous » » в форуме C++
    0 Ответы
    69 Просмотры
    Последнее сообщение Anonymous
  • Юникод из строкового литерала и из файла приводит к странному поведению
    Anonymous » » в форуме Linux
    0 Ответы
    63 Просмотры
    Последнее сообщение Anonymous
  • Использование Depth FBO для карты теней приводит к странному поведению.
    Anonymous » » в форуме C#
    0 Ответы
    53 Просмотры
    Последнее сообщение Anonymous
  • Использование Depth FBO для карты теней приводит к странному поведению.
    Anonymous » » в форуме C#
    0 Ответы
    46 Просмотры
    Последнее сообщение Anonymous
  • Общий lazyListState для нескольких LazyRow приводит к странному поведению.
    Anonymous » » в форуме Android
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»