     
  
    
   
   

   ChannelFactory<IInvoiceService> cf = new ChannelFactory<IInvoiceService>(endpoint); ...
 ChannelFactory<IInvoiceService> factory = new ChannelFactory<IInvoiceService>( new BasicHttpBinding(), new EndpointAddress("http://server/invoiceservice")); ... ChannelFactory<IInvoiceService> factory = new ChannelFactory<IInvoiceService>("httpEndpoint"); ...
<configuration> <system.serviceModel> <client> <endpoint name="httpEndpoint" address="http://server/invoiceservice" binding="basicHttpBinding" contract="IInvoiceService"/> <endpoint name="tcpEndpoint" address="net.tcp://server:8081/invoiceservice" binding="netTcpBinding" contract="IInvoiceService"/> </client> </system.serviceModel> </configuration>
   ChannelFactory<IInvoiceService> factory = new ChannelFactory<IInvoiceService>("tcpEndpoint"); IInvoiceService channel = factory.CreateChannel(); channel.SubmitInvoice(invoice); ((IClientChannel)channel).Close();
        
    public interface IInvoiceServiceChannel : IInvoiceService, System.ServiceModel.IClientChannel { } ChannelFactory<IInvoiceServiceChannel> factory = new ChannelFactory<IInvoiceServiceChannel>("tcpEndpoint"); IInvoiceServiceChannel channel = factory.CreateChannel(); channel.SubmitInvoice(invoice); channel.Close();
    public partial class InvoiceServiceClient : ClientBase<IInvoiceService>, IInvoiceService { public InvoiceServiceClient() { } public InvoiceServiceClient(string endpointName) : base(endpointName) { } ... // you're service contract methods will be here
... InvoiceServiceClient client = new InvoiceServiceClient("httpEndpoint"); Invoice invoice = new Invoice(); invoice.CustomerName = "Acme, Inc"; invoice.Amount = 100.00; invoice.InvoiceDate = DateTime.Now; client.SubmitInvoice(invoice); client.Close(); ...
     
<configuration> <system.serviceModel> <client> <endpoint name="httpEndpoint" address="http://server/invoiceservice" binding="basicHttpBinding" bindingConfiguration="MyConfiguration" contract="InvoiceServiceReference.IInvoiceService" /> </client> <bindings> <basicHttpBinding> <binding name="MyConfiguration" sendTimeout="00:05:00"> <security mode="Transport"> <transport clientCredentialType="Basic"/> </security> </binding> </basicHttpBinding> </bindings> </system.serviceModel> </configuration>
<configuration> <system.serviceModel> <client> <endpoint name="httpEndpoint" address="http://server/invoiceservice" binding="basicHttpBinding" behaviorConfiguration="viaBehavior" contract="InvoiceServiceReference.IInvoiceService" /> </client> <behaviors> <endpointBehaviors> <behavior name="viaBehavior"> <clientVia viaUri="http://router/invoiceservice"/> </behavior> </endpointBehaviors> </behaviors> ...

InvoiceServiceClient client = new InvoiceServiceClient("httpEndpoint"); Invoice invoice = ... // create invoice try { client.SubmitInvoice(invoice); client.Close(); } catch (FaultException fe) { Console.WriteLine(fe); client.Abort(); } catch (CommunicationException ce) { Console.WriteLine(ce); client.Abort(); } catch (TimeoutException te) { Console.WriteLine(te); client.Abort(); } ...
      
    
   
       
         

Programming clients-slides