Конфигурация времени выполнения в .Net (в частности, EntLib)

Я ищу способ настроить соединение с БД во время выполнения; в частности, используя 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. Конечно, я могу вернуться и удалить изменения, но я бы не стал проходить через это.

19.08.2008 04:32:13
Я все еще ищу ответ на это. Есть идеи?
xanadont 9.09.2008 03:47:46
3 ОТВЕТА

Если вы используете приложение winforms, вы можете попробовать использовать UserProperties для хранения этой информации. Другим возможным решением могут быть пользовательские разделы конфигурации .

1
19.08.2008 04:35:14

Если вы не хотите сохранять его, вам не нужно выполнять команду cfg.Save.

Объект конфигурации будет хранить ваши изменения до тех пор, пока они больше не понадобятся.

0
19.08.2008 04:41:27

Нет, вы должны сохранить, чтобы EntLib (и, я подозреваю, любой другой инструмент) мог видеть изменения.

0
19.08.2008 15:13:48