Има 2 варианта.
Вариант 1. Работа с канали.
Ако работите директно с канали, .NET 4.0 и .NET 4.5 имат ConfigurationChannelFactory. Примерът в MSDN изглежда така:
ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
fileMap.ExeConfigFilename = "Test.config";
Configuration newConfiguration = ConfigurationManager.OpenMappedExeConfiguration(
fileMap,
ConfigurationUserLevel.None);
ConfigurationChannelFactory<ICalculatorChannel> factory1 =
new ConfigurationChannelFactory<ICalculatorChannel>(
"endpoint1",
newConfiguration,
new EndpointAddress("http://localhost:8000/servicemodelsamples/service"));
ICalculatorChannel client1 = factory1.CreateChannel();
Както беше посочено от Langdon, можете да използвате адреса на крайната точка от конфигурационния файл, като просто подадете null, като това:
var factory1 = new ConfigurationChannelFactory<ICalculatorChannel>(
"endpoint1",
newConfiguration,
null);
ICalculatorChannel client1 = factory1.CreateChannel();
Това се обсъжда в документацията на MSDN.
Вариант 2. Работа с проксита.
Ако работите с генерирани от код проксита, можете да прочетете конфигурационния файл и да заредите ServiceModelSectionGroup. Има малко повече работа, отколкото просто да използвате ConfigurationChannelFactory
, но поне можете да продължите да използвате генерирания прокси (който под капака използва ChannelFactory
и управлява IChannelFactory
вместо вас.
Пабло Чибраро показва хубав пример за това тук: Получаване на WCF свързвания и поведение от всеки източник на конфигурация
person
Philippe
schedule
19.04.2013