Search code examples
wcfwcf-client

WCF using ChannelFactory.CreateChannel with webHttp behavior


I've got a simple REST based service for which I am trying to create a client proxy using ChannelFactory. I want to be without a configuration file so I am trying to do this in code and I believe I have everything I used to have in .config except for the behavior. Can anyone tell me how I can get this config into c# code:

  <behaviors>
   <endpointBehaviors>
    <behavior name="InitBehavior">
     <webHttp />
    </behavior>
   </endpointBehaviors>
  </behaviors>

Here is the stripped down c# code I have now:

var endpoint = new EndpointAddress(urlCommServer);
var binding = new WebHttpBinding();
return ChannelFactory<IInitialization>.CreateChannel(binding, endpoint);

Solution

  • Try this. You need to add the behavior to the ChannelFactory.

    var factory = new ChannelFactory<IInitialization>(binding, endpoint);
    var behavior = new WebHttpBehavior();
    factory.Endpoint.Behaviors.Add(behavior);
    var channel = factory.CreateChannel();
    

    source