我记录了自己,但无法找到或理解我该如何做我想实现的目标。在c中处理通用配置文件#
这里是东西:
- 我不能使用注册表(不知道我有客户端计算机上的权利)
- 它需要是通用的,透明的(代号侧)
我有一个项目文件夹中的配置设置,让我们说:
- 解决方案
- PROJECT1
- 许多代码文件夹..
- 设置
- 的UserLevel
- FirstEnv.settings
- SecondEnv.settings
- 应用级
- 个FirstEnv.settings
- SecondEnv.settings
- 的UserLevel
- 项目2
- PROJECT1
现在我有一个SettingFactory其中(应该)实例化(或者至少,指定值)在* .settings到我的应用程序设置 我想有类似的东西:
在app.config中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;
}
}
和 '(键,值)'
<applicationSettings>
<add name="environnement" value="env1"/>
</applicationSettings>
所以,在我的代码,当我需要使用的设置,我可以简单地指
ConfigurationManager.appsettings["targetURI"]
当我想切换'环境'
ConfigurationManager.appsettings["environnement"] = "env2";
SettingsFactory.LoadSettings();
有关如何做到这一点或任何设计模式改进的任何建议?此外,我分开AppLevel设置和Userlevel设置,但它只不过是一对(键,值)。但开发工作更容易。这样一来,我可以通过代码(2lines)或编辑的app.config
由于修改环境在轻松,
,所以我需要用手等来处理加密的部分..? – MinionKing
如果你想要设置的内容被加密,那么是的。看看这个链接http://stackoverflow.com/a/965188/1706610 – FodderZone