두 가지 옵션이 있습니다.
옵션 1. 채널을 사용한 작업.
채널로 직접 작업하는 경우 .NET 4.0 및 .NET 4.5는 ConfigurationChannelFactory입니다. MSDN의 예는 다음과 같습니다
var factory1 = new ConfigurationChannelFactory<ICalculatorChannel>(
"endpoint1",
newConfiguration,
null);
ICalculatorChannel client1 = factory1.CreateChannel();
이 설명되어 있습니다 :
랭던에 의해 지적
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을 전달하여 구성 파일에서 엔드 포인트 주소를 사용할 수 있습니다 MSDN documentation에서 확인하십시오.
옵션 2. 프록시 작업.
코드 생성 프록시로 작업하는 경우 구성 파일을 읽고 ServiceModelSectionGroup을로드 할 수 있습니다. 단순히 ConfigurationChannelFactory
하지만를 사용하는 것보다 참여 좀 더 많은 작업이 적어도 당신이 할 수있는 후드 아래 ChannelFactory
을 사용하고 당신을 위해 IChannelFactory
을 관리하는 (생성 된 프록시를 사용하여 계속합니다.
파블로 Cibraro 여기이의 좋은 예를 보여줍니다 : Getting WCF Bindings and Behaviors from any config source
이 질문에 대한 답변을 얻으려면 http://stackoverflow.com/a/839941/592732 – MarioVW