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