sni*_*ker 6 c# registry configuration configuration-management
我有一个类库,将从多个单独的可执行应用程序中调用.此类库需要知道要访问的数据库服务器的地址(以及许多其他配置选项,身份验证信息等).我有一个独立于类库的配置和管理应用程序,它还需要知道并设置这些配置选项.
通常的做法是在Windows注册表中存储这些特定于用户的配置选项,还是首选对类库使用典型的"App.config"XML方法,并允许配置工具更改和修改它?
我倾向于注册表方法,但我知道许多人对不使用它有意见.你会怎么做?
最佳做法是在用户的%appdata%目录中使用XML配置文件.
有许多的原因:
您的用户应始终可以访问自己的%appdata%目录.这是一个示例:
string configFilePath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "myAppConfig.config";
ExeConfigurationFileMap map = new ExeConfigurationFileMap();
map.ExeConfigFilename = configFilePath;
Configuration cfg = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
cfg.AppSettings.Settings.Add("mySetting", "myValue!");
cfg.Save(ConfigurationSaveMode.Modified);
// to read the setting back
string mySetting = cfg.AppSettings.Settings["mySetting"].Value;
// at this point, mySetting = "myValue!"
Run Code Online (Sandbox Code Playgroud)请记住将System.Configuration v2.0.0.0引用添加到您的项目中!默认的System.Configuration命名空间没有所有必需的类.
在我的具体情况下,这些特定的配置设置存储在注册表中更有意义。我不能肯定我们的用户会将应用程序安装到相同的位置,至少,我必须将“主”配置 XML 文件的位置存储在注册表中,以便其他应用程序可以找到它。
我只是创建了一个带有索引的类,用于像哈希表 ( ) 一样向注册表读取/写入配置设置,string ponySetting = myRegistryObject["DefaultPonySetting"]然后就到此为止了。无论如何,我在所有其他应用程序中引用此类的主程序集。胡扎
| 归档时间: |
|
| 查看次数: |
1687 次 |
| 最近记录: |