Динамическое обновление свойств с Spring.Net
У меня есть объект рабочего пространства, содержащий список целевых объектов с их свойствами.
Это очень просто настроить с помощью Spring.Net. Но дело в том, что целевые объекты могут быть изменены пользователем (в графическом интерфейсе): некоторые могут быть добавлены, удалены и их свойства могут измениться.
Мне нужно сериализовать новую конфигурацию рабочего пространства на лету, чтобы она оставалась постоянной при выходе из строя моего приложения.
Есть ли какой-нибудь автоматический способ сделать это с помощью Spring.Net, без необходимости иметь дело с сериализацией XML? Или есть способ упростить сериализацию XML в этом случае? Логично ли использовать Spring.Net в этом случае вообще?
Спасибо!
1 ответ
Вы не должны использовать свою конфигурацию зависимостей как средство постоянного хранения; это не было построено для этой цели. Думайте о конфигурации зависимостей как о статической конфигурации, которая поставляется вместе с вашим приложением.
Если пользователи вашего приложения могут изменять объект, то это, как правило, не тот объект, который вы должны сконфигурировать с помощью инфраструктуры внедрения зависимостей. Вам следует рассмотреть возможность сохранения и извлечения этих объектов с использованием базы данных, файла (XML, обычного текста) или другого постоянного хранилища.
Рассмотрим введение объекта (давайте назовем его TargetManager
) на ваше WorkSpace
который управляет Target
объекты. TargetManager
может получить доступ к постоянному хранилищу и WorkSpace
не знаю, как TargetManager
работает; только то, что это даст ему Target
s.
Таким образом, для статической части конфигурации вашего приложения вы определенно можете использовать Spring.NET, но для сохранения и извлечения целей вам не следует использовать функции внедрения зависимостей Spring.NET.
Сериализация XML может быть очень простой в.net, но это действительно зависит от типа объекта, который вы хотите сериализовать. Нам понадобятся некоторые подробности об объектах, которые вы хотите сохранить, чтобы помочь там.