Есть 2 варианта.
Вариант 1. Работа с каналами.
Если вы работаете с каналами напрямую, .NET 4.0 и .NET 4.5 имеют Фабрика каналов конфигурации. Пример на 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();
Как указал Лэнгдон, вы можете использовать адрес конечной точки из файла конфигурации, просто передав null, например:
var factory1 = new ConfigurationChannelFactory<ICalculatorChannel>(
"endpoint1",
newConfiguration,
null);
ICalculatorChannel client1 = factory1.CreateChannel();
Это обсуждается в документации MSDN.
Вариант 2. Работа с прокси.
Если вы работаете с прокси-серверами, сгенерированными кодом, вы можете прочитать файл конфигурации и загрузить Сервисмоделсектионгрупп. Требуется немного больше работы, чем просто использование ConfigurationChannelFactory
, но, по крайней мере, вы можете продолжать использовать сгенерированный прокси (который внутри использует ChannelFactory
и управляет IChannelFactory
для вас.
Пабло Сибраро показывает хороший пример здесь: Получение привязок и поведения WCF из любого источника конфигурации
person
Philippe
schedule
19.04.2013