У меня есть служба Windows, которая использует систему плагинов. Я использую следующий код в базовом классе подключаемого модуля, чтобы предоставить отдельную конфигурацию для каждой DLL (поэтому он будет читать из plugin.dll.config
):
string dllPath = Assembly.GetCallingAssembly().Location;
return ConfigurationManager.OpenExeConfiguration(dllPath);
Эти подключаемые модули должны выполнять вызовы WCF Services, поэтому проблема, с которой я сталкиваюсь, заключается в том, что new ChannelFactory <> ("endPointName")
просматривает конфигурацию конечной точки только в App.config размещенного приложения.
Есть ли способ просто указать ChannelFactory, что нужно искать в другом файле конфигурации или как-то внедрить мой объект Configuration
?
Единственный способ, который я могу придумать, - это вручную создать объект EndPoint и Binding из значений, считанных из plugin.dll. config
и передать их одной из перегрузок ChannelFactory <>
. Это действительно похоже на воссоздание колеса, и это может стать действительно беспорядочным с конечной точкой, которая интенсивно использует конфигурации поведения и привязки. Может быть, есть способ легко создавать объекты EndPoint и Binding, передав им раздел конфигурации?