我有一個使用插件系統的Windows服務。我用下面的代碼的插件基類,以提供每個DLL一個單獨的配置(所以它會從plugin.dll.config
讀):App.config之外的WCF ChannelFactory配置?
string dllPath = Assembly.GetCallingAssembly().Location;
return ConfigurationManager.OpenExeConfiguration(dllPath);
這些插件需要對WCF服務調用,所以這個問題我運行的是new ChannelFactory<>("endPointName")
只在託管應用程序的App.config中查找端點配置。
有沒有辦法簡單地告訴ChannelFactory查看另一個配置文件或以某種方式注入我的Configuration
對象?
我能想到的解決方法的唯一方法是從plugin.dll.config
中讀取的值中手動創建EndPoint和Binding對象,並將它們傳遞給ChannelFactory<>
重載之一。這看起來好像重新創建輪子,並且可能會大量使用行爲和綁定配置的EndPoint。 也許有辦法通過傳遞一個配置節來輕鬆創建EndPoint和Binding對象嗎?
起初我感到失望,因爲構造函數需要你定義一個的EndpointAddress,其端點已經定義了,然後我意識到,你可以發送`null`和它會使用配置的地址。感謝發佈! – Langdon 2013-04-18 13:01:39