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

时间:2008-08-19 04:32:14

标签: .net enterprise-library connection-string

我正在寻找一种在运行时配置数据库连接的方法;特别是使用企业库。我看到有一个* .Data.Configuration(或者接近这个的东西......不要回想起我的头脑)汇编,但我发现互联网上并没有太多。让问题复杂化的是,在Vista上打破了API帮助。

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

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。当然我可以回去删除更改,但我宁愿不经历这个麻烦。

3 个答案:

答案 0 :(得分:1)

如果您使用的是winforms应用,可以尝试使用UserProperties存储此信息。另一种可能的解决方案可能是custom configuration sections

答案 1 :(得分:0)

如果您不想保存它,则无需执行cfg.Save命令。

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

答案 2 :(得分:0)

不,你必须保存,以便EntLib(以及我怀疑,任何其他工具)看到更改。