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

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

Ответы [ 3 ]

1 голос
/ 19 августа 2008

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

0 голосов
/ 19 августа 2008

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

0 голосов
/ 19 августа 2008

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...