Я пишу пользовательский контроль над плагином для собственной системы управления экраном. Мой уровень 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, чтобы вместо этого использовать объектные фабрики тестового проекта. Мне действительно не нравится эта идея.
Спасибо всем за любую помощь.