Как читать app.config из пользовательского местоположения, то есть из базы данных в .NET - PullRequest
4 голосов
/ 21 апреля 2009

Я пытаюсь переопределить метод ApplyConfiguration в моем настраиваемом ServiceHost для чтения конфигурации из базы данных вместо app.config. В идеале я хотел бы иметь возможность сделать что-то вроде этого:

Конфигурация конфигурации = GetConfigFromMyDatabase (...);

ServiceModelSectionGroup serviceModel = ServiceModelSectionGroup.GetSectionGroup (config);

Есть ли способ сделать это без записи временного файла app.config?

Ответы [ 3 ]

4 голосов
/ 21 апреля 2009

Как насчет использования:

System.Configuration.ConfigurationManager.OpenExeConfiguration(string exePath)

Это должно позволить вам открыть произвольный файл app.config.

1 голос
/ 12 мая 2009

Вам не нужен отдельный домен приложений, если вы пишете собственный ServiceHost.

ServiceHost имеет метод ApplyConfiguration, который вы можете переопределить. Вы можете загрузить конфигурацию из любого места.

См. Здесь для соответствующей статьи с изложением техники.

0 голосов
/ 22 апреля 2009

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

Перед созданием вашего AppDomain, извлеките конфигурацию из базы данных и запишите ее в файловую систему, затем, когда вы создаете свой AppDomain, укажите его на временный файл конфигурации, который вы извлекли из базы данных в качестве источника конфигурации.

Конечно, конфигурация в базе данных должна быть либо полным файлом app.config, либо вам придется объединить его с каким-то файлом конфигурации шаблона, в котором есть какие-либо другие биты конфигурации не-serviceModel для остальная часть вашего приложения.

Реализация этого таким способом является довольно аккуратным решением и хорошо работает (использовали его раньше).

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