2015-05-27 3 views
0

Я немного пытаюсь выполнить сериализацию данных, используемых в моем древовидном изображении, мы используем это как форму кэширования данных.Сериализация структуры, подобной treenode

В основном у меня есть такие данные, как следует

  • PhotoGroup A

    • PhotoGroup B
      • PhotoGroup F
    • PhotoGroup C
  • PhotoGroup D

  • PhotoGroup E

Как вы (надеюсь) можно видеть, у меня есть объекты, называемые photogroup, которые могут содержать ноль или более photogroup в качестве детей, и эти дети могут также содержать ноль или больше фотогрупп в качестве детей.

Что я хочу сделать, это сериализовать эти данные в файл и загрузить его со всеми группами и подгруппами. Раньше я сглаживал всю структуру и полагался на свойство под названием ParentGroupID. Однако это вызывает проблемы.

Любая помощь была бы принята с благодарностью.

+1

Вы можете сериализовать в XML или JSON, и сохранить его в файл. Все механизмы сериализации/десериализации уже существуют, и все, что вам нужно, это просто их использование. Если у вас есть какое-то рекурсивное свойство, отключите его сериализацию с одного пути, но оставите его в другом. Надеюсь, вы понимаете Идею. Если вы хотите получить ответ, пожалуйста, дайте нам несколько примеров кода. – Baximilian

+0

. Моя проблема заключается в том, как сериализовать рекурсивно, мне нужно сохранить корень плюс его детей, их детей и их детей и т. Д., Я не смог найти примеры из моих поисков, поэтому я обратился сюда, какие образцы кода вам потребуются? – Ben

ответ

1

Здесь вы идете. Я надеюсь, что это будет ответ на ваш вопрос PUSH

А вот код

var serializer = new XmlSerializer(typeof(MyClass)); 

using (var ms = new MemoryStream()) 
{ 
    var sw = new StreamWriter(ms); 
    serializer.Serialize(sw, _class); 

    sw.Flush(); 

    ms.Position = 0; 
    var sr = new StreamReader(ms); 
    var myStr = sr.ReadToEnd(); 
    Console.WriteLine(myStr); 
} 
Смежные вопросы