В основном мой проект представляет собой приложение MDI Winform, в котором пользователь может настроить интерфейс, добавив различные элементы управления и изменив макет. Я хотел бы иметь возможность сохранять состояние приложения для каждого пользователя.
Я довольно много искал и нашел:
Как автоматически сохранить и автоматически загрузить все свойства в winforms C #?
Сохранить WinForm или элементы управления в файл
По сути, насколько я понимаю, лучший подход - это сериализация данных в XML, однако элементы управления winform не сериализуемы, поэтому я бы использовал суррогатные классы:
http://www.codeproject.com/KB/dotnet/Surrogate_Serialization.aspx
Теперь, мне нужно написать суррогатный класс для каждого из моих элементов управления? Мне нужно написать какой-то рекурсивный алгоритм, чтобы сохранить все мои элементы управления, каков наилучший подход для достижения этой цели? Как бы я тогда восстановил все окна, должен ли я использовать шаблон дизайна памяти для этого? Если я хочу реализовать несколько пользователей позже, должен ли я использовать Nhibernate для хранения всех данных объекта в базе данных? Я все еще пытаюсь обдумать проблему, и если у кого-то есть опыт или совет, я был бы очень признателен, спасибо