Я коллега Эрика. Поскольку он будет в заслуженный отпуск в ближайшие несколько недель, я немного подробнее остановлюсь на этом вопросе.
В наших плагинах мы используем несколько экземпляров клиентов службы WCF. Отличительной особенностью этих сервисов является то, что они поставляются с разделами app.config, которые можно использовать для настройки поведения, типа обслуживания, безопасности и т. Д. И т. Д.
Теперь, когда мы загружаем наши плагины, эти разделы отсутствуют в конфигурации, и поэтому правильные конечные точки не могут быть найдены. Конечно, мы могли бы установить их в коде, но этот тип выбивает возможность устанавливать другие параметры конфигурации по мере необходимости. Мы могли бы хотеть реализовать ws-security, например.
Так что нам нужен способ загрузить эти конфиги, чтобы плагины могли прочитать там соответствующие настройки. Конечно, мы можем объединить все конфиги в один, но это исключает метод «просто плагин», так как вам придется управлять конфигами вместе с установкой плагина.
Я думал о создании небольшого инструмента, который бы объединял конфигурацию 'master' со всеми конфигами, помещенными в подкаталог проекта, и заменял файл .exe.config этим. Я думаю, что это сработает, но мне было интересно, если .NET не предоставляет лучшие варианты. Несколько доменов приложений - это не то, что должно работать, потому что плагины должны взаимодействовать (модель поставщика / потребителя) друг с другом, и мы не хотим переключаться на удаленное взаимодействие только из-за этой проблемы.
Обновление: я исправил большинство проблем с помощью ConfigurationManager, чтобы открыть существующие настройки для чтения настроек приложения. Что касается клиентов WCF; Вы можете загрузить конфигурацию конечной точки / привязки для сервера и клиента, как показано здесь: http://weblogs.asp.net/cibrax/archive/2007/10/19/loading-the-wcf-configuration-from-different-files-on-the-client-side.aspx