Временный импорт настроек конфигурации во время выполнения? - PullRequest
1 голос
/ 03 октября 2009

Я пишу пользовательский контроль над плагином для собственной системы управления экраном. Мой уровень BO построен на CSLA, и я использую CSLA'a ObjectFactory для вызова моего уровня данных. Еще одна сложность заключается в том, что я использую настройку приложения CslaObjectFactoryLoader, чтобы иметь два набора заводских загрузчиков: один для уровня тестовых данных, а другой - для уровня живых данных. Это хорошо работает для TDD, так как app.config моего тестового проекта определяет свой собственный «фальшивый» загрузчик фабрики, в то время как app.config моего экрана определяет загрузчик фабрики реальных данных. Оттуда каждый загрузчик предоставит соответствующую фабрику реальных / поддельных объектов для использования DataPortal.

Суть в том, что CSLA жестко запрограммирован на ConfigurationManager.AppSettings["CslaObjectFactoryLoader"] для пользовательской фабрики. Поскольку это пользовательский элемент управления, мне нужно изменить файл конфигурации среды выполнения с соответствующим значением CslaObjectFactoryLoader. При отладке пользовательского элемента управления в UserControlTestContainer.exe я использовал заимствованный бит кода , чтобы импортировать мой набор приложений CslaObjectFactoryLoader в файл конфигурации UserControlTestContainer. Этот метод привел к сохранению изменений в файле UserControlTestContainer.exe.config, но я отмахнулся от него и продолжил работу.

Теперь, когда я готов к развертыванию в диспетчере рабочего экрана, я не хочу использовать этот же метод «постоянного копирования» из-за коллизий настроек с других экранов плагинов. Есть ли способ временно импортировать параметры конфигурации в файл конфигурации времени выполнения? Могу ли я «перенаправить» туда, где идет реализация ConfigurationManager.AppSettings по умолчанию?

Мой план B здесь состоит в том, чтобы пропустить пользовательский загрузчик фабрики и позволить объекту по умолчанию ObjectFactoryLoader вызывать фабрики объектов моего уровня данных. Затем я бы изменил свои фабрики, чтобы посмотреть на appSetting, чтобы вместо этого использовать объектные фабрики тестового проекта. Мне действительно не нравится эта идея.

Спасибо всем за любую помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...