【发布时间】:2014-04-02 04:59:13
【问题描述】:
我记录了自己,但无法找到或理解如何做我想要实现的目标。
事情是这样的:
- 我无法使用注册表(不确定我是否拥有客户端计算机上的权限)
- 它需要通用且透明(代码端)
我在项目文件夹中有配置设置,比如说:
- 解决方案
- 项目1
- 很多代码文件夹..
- 设置
- 用户级别
- FirstEnv.settings
- SecondEnv.settings
- 应用程序级别
- FirstEnv.settings
- SecondEnv.settings
- 用户级别
- 项目2
- 项目1
现在我有一个 SettingFactory,它(应该)在 *.settings 中实例化(或至少分配值)到我的 applicationSettings 我想要类似的东西:
public static void LoadSetting()
{
var env = ConfigurationManager.AppSettings["environnement"];
switch (env)
{
case "env1": ConfigurationManager.OpenExeConfiguration("Setting/AppLevel/firstEnv.settings");
break;
case "env2": ConfigurationManager.OpenExeConfiguration("Setting/AppLevel/secondEnv.settings");
break;
default : ConfigurationManager.OpenExeConfiguration("Setting/AppLevel/secondEnv.settings");
break;
}
}
和 app.config 中的“(键,值)”
<applicationSettings>
<add name="environnement" value="env1"/>
</applicationSettings>
所以在我的代码中,当我需要使用设置时,我可以简单地参考
ConfigurationManager.appsettings["targetURI"]
当我想切换“环境”时
ConfigurationManager.appsettings["environnement"] = "env2";
SettingsFactory.LoadSettings();
关于如何做到这一点或任何设计模式改进的任何建议?
此外,我将 AppLevel 设置和 Userlevel 设置分开,但它只不过是一对(键,值)。但开发人员更容易使用。这样,我可以通过代码(2行)或编辑 app.config 轻松修改环境
谢谢,
【问题讨论】:
标签: c# configuration app-config application-settings appsettings