Search code examples
c#wcfwcf-bindingwcf-client

How to programmatically connect a client to a WCF service?


I'm trying to connect an application (the client) to an exposed WCF service, but not through the application configuration file, but in code.

How should I go about doing this?


Solution

  • You'll have to use the ChannelFactory class.

    Here's an example:

    var myBinding = new BasicHttpBinding();
    var myEndpoint = new EndpointAddress("http://localhost/myservice");
    using (var myChannelFactory = new ChannelFactory<IMyService>(myBinding, myEndpoint))
    {
        IMyService client = null;
    
        try
        {
            client = myChannelFactory.CreateChannel();
            client.MyServiceOperation();
            ((ICommunicationObject)client).Close();
            myChannelFactory.Close();
        }
        catch
        {
            (client as ICommunicationObject)?.Abort();
        }
    }
    

    Related resources: