代码之家  ›  专栏  ›  技术社区  ›  David Peters

在运行时临时导入配置设置?

  •  1
  • David Peters  · 技术社区  · 15 年前

    我正在为一个内部屏幕管理系统编写一个插件用户控件。我的BO层是基于CSLA构建的,我使用CSLA'a ObjectFactory来调用我的数据层。更复杂的是,我使用CslaObjectFactoryLoader应用程序设置来拥有两组工厂加载程序:一个用于测试数据层,另一个用于实时数据层。这对于将TDD作为我的测试项目很好应用程序配置指定自己的“假”工厂加载程序,而我的屏幕应用程序配置指定实际数据工厂加载程序。从那里,每个加载程序将为DataPortal提供适当的真实/虚假对象工厂。

    这里的关键是CSLA是硬编码的 ConfigurationManager.AppSettings["CslaObjectFactoryLoader"] 供定制工厂使用。因为这是一个用户控件,所以我需要用适当的CslaObjectFactoryLoader值修改运行时配置文件。在用户中调试用户控件时ControlTestContainer.exe我曾经 a borrowed bit of code 将CslaObjectFactoryLoader应用程序设置导入UserControlTestContainer的配置文件。此方法确实导致保存对用户的修改ControlTestContainer.exe.config文件但我不屑一顾,继续工作。

    现在我已经准备好部署到生产屏幕管理器中了,我不想使用相同的“永久复制”方法,因为其他插件屏幕的设置冲突。有没有办法将配置设置临时导入到运行时配置文件中?我是否可以“重定向”默认实现的位置配置管理器.AppSettings走了?

    我的计划B是跳过自定义工厂加载程序,并允许默认的ObjectFactoryLoader调用数据层的对象工厂。然后我会修改我的工厂以查看appSetting,从而使用测试项目的对象工厂。不过,我真的不喜欢这个主意。

    谢谢大家的帮助。

    0 回复  |  直到 15 年前