.Net中的运行时配置(特别是EntLib)

时间:2020-03-05 18:40:37  来源:igfitidea点击:

我正在寻找一种在运行时配置数据库连接的方法。特别是使用企业库。我看到有一个* .Data.Configuration(或者接近它的东西...别想起我的头了)程序集,但在互连网上发现的内容不多。麻烦的是,API帮助在Vista上已损坏。

现在,我找到了解决方法:

Configuration cfg = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
ConnectionStringSettings connection = new ConnectionStringSettings();
connection.Name = "Runtime Connection";
connection.ProviderName = "System.Data.OleDb";
connection.ConnectionString = "myconstring";
cfg.ConnectionStrings.ConnectionStrings.Add(connection);
cfg.Save(ConfigurationSaveMode.Modified);

ConfigurationManager.RefreshSection("connectionStrings");
var runtimeCon = DatabaseFactory.CreateDatabase("Runtime Connection");

尽管它提供了我想要的功能,但它会永久编辑App.config。当然,我可以返回并删除所做的更改,但我不希望经历这种麻烦。

解决方案

回答

如果我们使用的是winforms应用,则可以尝试使用UserProperties来存储此信息。另一个可能的解决方案是自定义配置部分。

回答

如果我们不希望保存它,则不需要执行cfg.Save命令。

Configuration对象将存储更改,直到不再需要为止。

回答

不,我们必须保存以便EntLib(我怀疑还有其他工具)才能查看更改。