Как написать файл dataConfig.config Enterprise Library? - PullRequest
1 голос
/ 06 октября 2011

Я «унаследовал» приложение для тестирования, которое использует Enterprise Library для доступа к данным SQL. В файле app.config (предприимчивый.configurationSettings) он ссылается на «configurationSection» с путем к «dataConfig.config», который зашифрован. Я хотел бы изменить свойства подключения к базе данных, но EntLibConfig.exe не будет открывать dataConfig.config или app.config (у меня есть файл FileKeyAlgorithmPairStorageProviderData) .

Приложение тестового жгута работает, поэтому оно настроено нормально.

В коде я могу использовать (Microsoft.Practices.EnterpriseLibrary.Data.Configuration.ConfigurationManager.GetConfiguration ("dataConfiguration")) чтение конфигурации данных и перемещаться по всем экземплярам и строкам подключения (безопасность не проблема для этого тестового жгута) . Я могу сбросить все, что мне нужно, в созданный вручную XML-файл (используя GetType (). AssemblyQualifiedName, чтобы получить полное имя для классов, которые читают файл конфигурации) , а затем изменить app.config, чтобы прочитать мой новый незашифрованный файл xml dataConfig.

Все хорошо, теперь я могу изменить настройки конфигурации базы данных.

Однако ... учитывая, что ConfigurationManager.GetConfiguration ("dataConfiguration") возвращает полностью заполненный экземпляр объекта DatabaseSettings, не существует ли метода, который я могу вызвать для записи файла XML (dataConfig.config) для меня?

Я ценю, что это, вероятно, очень удачный способ редактирования конфигурации данных, но после полдня попыток я вернулся к старому принципу кодирования ... если вы не можете найти инструмент, чтобы делать то, что хочешь, пиши свой!

Спасибо

1 Ответ

1 голос
/ 06 октября 2011

Ну ... получается, что это не так сложно.

Я добавил новый "configurationSection" в мой app.config (dataConfiguration2) , для параметра шифрования установлено значение false, с путем, указывающим на новый пустой текстовый файл (dataConfiguration.config2) . Затем я скопировал мои зашифрованные данные конфигурации данных, используя следующий код:

using Entlib = Microsoft.Practices.EnterpriseLibrary.Configuration;
using Microsoft.Practices.EnterpriseLibrary.Data.Configuration;
    :
DatabaseSettings settings = (DatabaseSettings)Entlib.ConfigurationManager.GetConfiguration("dataConfiguration");
Entlib.ConfigurationManager.WriteConfiguration("dataConfiguration2", settings);

... и он заполнил пустой файл (незашифрованным) сведениями о конфигурации.

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