Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Сериализация DockPanel


Автор: Vanes 11.5.2009, 07:29
Доброго времени суток, всем. Столкнулся с задачей - нужно сериализовать объект DockPanel и те объекты, которые расположены на нем(TreeView n штук). DockPanel прописан в XAML коде. При попытке сериализовать DockPanel выдается ошибка - Type 'System.Windows.Controls.DockPanel' is not marked as serializible. Проблема вроде ясна - нужно указать что данный объект (DockPanel) сериализуемый. Вопрос как это сделать?

Функция сериализации:

Код

        public void SetCache(string SrcFile, Object obj)
        {
            BinaryFormatter formatter = new BinaryFormatter(); 
            Stream stream = new FileStream(System.IO.Directory.GetCurrentDirectory()+"\\cache\\"+SrcFile, FileMode.Create, FileAccess.Write, FileShare.None); 
            try
            {
                formatter.Serialize(stream, obj); 
            }
            catch (Exception E) {
                System.Windows.MessageBox.Show(E.Message);
            }
            stream.Close(); 
        }


Автор: Partizan 11.5.2009, 10:10
Vanes, никак не сделать....зачем, собственно сериализовать докпанель???

Автор: Vanes 11.5.2009, 10:19
Цитата

зачем, собственно сериализовать докпанель???


На панели расположено несколько деревьев, которые строятся динамически в программе. Элементов в деревьях очень много (порядка 50 тысяч). Процедура построения занимает много времени. Причем в программе может вызываться несколько раз. Для этого хочу строить дерево всего один раз и все созданные деревья сериализовать в файл, для дальнейшей загрузки. Если не получится сериализовать, как можно еще решить эту проблему?

Автор: Partizan 11.5.2009, 16:34
Vanes, не надо сериализовать контролы....сериализуйте данные - в вашем случае структура деревьев...

Автор: Vanes 12.5.2009, 06:21
Цитата

Vanes, не надо сериализовать контролы

Да, действительно, куда-то меня не туда понесло smile  Буду пробовать по другому.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)