Я ищу способ настроить соединение с БД во время выполнения; в частности, используя Enterprise Library. Я вижу, что есть конфигурация * .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.
Объект конфигурации будет хранить ваши изменения до тех пор, пока они больше не понадобятся.
Нет, вы должны сохранить, чтобы EntLib (и, я подозреваю, любой другой инструмент) мог видеть изменения.