Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Сохранение объектов в файл

52K
04 июня 2010 года
capflint
20 / / 16.02.2010
В проге на панели лежит несколько объектов. нужно содержимое панели сохранить в файл, а потом восстановить все назад. т.е. сделать что-то типа xaml файла, в котором содержиться только панель.
сохранять пробывал так:
 
Код:
System.Xml.XmlWriterSettings settings = new System.Xml.XmlWriterSettings()
                {
                    ConformanceLevel = System.Xml.ConformanceLevel.Auto
                };
                System.Xml.XmlWriter xmlWriter = System.Xml.XmlWriter.Create(sfd.FileName, settings);
                foreach (object obj in canvas.Children)
                {
                    System.Windows.Markup.XamlWriter.Save(obj, xmlWriter);
                }
                xmlWriter.Close();

и тут появляется вторая проблема:
выскакивает исключение InvalidOperationException: невозможно выполнить сериализацию для универсального типа. Дело в том, что мой объект на панели имеет свойство универсального типа (ссылку на другой объект) и XamlWriter не хочет его сохранять.
на счет восстановления объектов из файла идей пока нет вообще
Аноним
Этот процесс называется сериализацией =)
http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=236
52K
04 июня 2010 года
capflint
20 / / 16.02.2010
я знаю как это называется и что это такое. дело в том, что не хочу я сериализовывать класс. мне бы как-нибудь по другому сохранять содержимое панели.
Аноним
я о том что берешь объект (а не ссылку на него) с панели и сериализуешь.
или создай новый экземпляр класса перед сериализацией - инициируй его значениями объекта лежащего по ссылке и сериализуй(набивай нужные данные с панели в свой класс). А ссылку ты конечно не сериализуешь
52K
04 июня 2010 года
capflint
20 / / 16.02.2010
тоже вариант, но получается так, что один и тот же объект в файл будет записываться дважды (один раз как содержимое панели, второй - как объект, на который ссылается другой объект). а если на один и тот же объект ссылается несколько других, то соответственно и в файл он попадет несколько раз. А может я не так понимаю?
Аноним
а, ты о том что у тебя в одном объекте ссылка на другой (те блок один содержит кучу всего и как элемент болк 2) и оба могут попасть?
тут важен порядок "обхода" содержимого панели - те надо тогда ввести что-то типа уровней иерархии объектов или элемент связи(типа ChildOf ParentOf как в три нодах =) ).
52K
07 июня 2010 года
capflint
20 / / 16.02.2010
а поле Chileof какого типа должно быть?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог