2012-05-24 4 views
0

Этот пост является ответвлением моего предыдущего post. Однако я не пробовал реализовать то, что было упомянуто там еще. Я только что узнал об использовании ConfigurationManager.OpenExeConfiguration() для загрузки конфигураций. Следующий вопрос, который должен прийти естественным образом, - как управлять конфигурациями WCF?Как получить конфигурации WCF, если вы делаете ConifugrationManager.OpenExeConifguration()

Что я сделал: я создал проект библиотеки классов (так называемый A) и добавил ссылку на службу wcf. A имел файл app.config как часть проекта. Следовательно, конфигурации будут генерироваться автоматически автоматически VS. Поэтому, когда я строй A я получаю A «S сборки сгенерированных (A.dll и A.dll.config) внутри A» s бен папки

добавить еще один проект (B) в раствор. Добавить проект A в качестве справочника. Следовательно, при построении B, A.dll будет скопирован в папку bin B. Я также изменяю свои свойства сборки таким образом, что A.dll.config получает скопированный пост B в сборник B-файлов.

В способе в классе, внутри A.dll я бы создал свой ФОС прокси вроде:

var wcfProx = new MyWCFSvcClient(); 

вызов этого конструктора фактически выбирает значения из файла конфигурации Исполнит сборки. Если бы я хотел, чтобы мой wcf-прокси работал, я знаю, что мне нужно скопировать system.ServiceModel в файл app.config A. в файл конфигурации B. Это то, что я делал раньше.

Но теперь, что делать с объектом Configuration, который я открыл через ConfigurationManager.OpenExeConfig(), и как связать этот объект с моим прокси-сервером wcf? Значение экземпляра прокси должно выводить значения от A.dll.config.

ответ

0

Возможно, ConfigurationManager.OpenMappedExeConfiguration() - это то, что вы ищете.

http://msdn.microsoft.com/en-us/library/ms134269.aspx

В примере кода, автор копирует текущую конфигурацию в новый файл, а затем программно добавляет новый раздел конфигурации в файл.

После сохранения изменений и сброса раздела они смогут прочитать настройки обратно.

Мне не удалось определить, изменит ли это конфигурацию текущего запущенного приложения, но это стоит того.