¿Cómo conectar un cliente mediante progtwigción a un servicio WCF?

Estoy intentando conectar una aplicación (el cliente) a un servicio WCF expuesto, pero no a través del archivo de configuración de la aplicación, sino en código.

¿Cómo debo hacer esto?

Tendrás que usar la clase ChannelFactory .

Aquí hay un ejemplo:

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

Recursos Relacionados:

  • Cómo usar: ChannelFactory

También puede hacer lo que hace el código generado “Referencia de servicio”

 public class ServiceXClient : ClientBase, IServiceX { public ServiceXClient() { } public ServiceXClient(string endpointConfigurationName) : base(endpointConfigurationName) { } public ServiceXClient(string endpointConfigurationName, string remoteAddress) : base(endpointConfigurationName, remoteAddress) { } public ServiceXClient(string endpointConfigurationName, EndpointAddress remoteAddress) : base(endpointConfigurationName, remoteAddress) { } public ServiceXClient(Binding binding, EndpointAddress remoteAddress) : base(binding, remoteAddress) { } public bool ServiceXWork(string data, string otherParam) { return base.Channel.ServiceXWork(data, otherParam); } } 

Donde IServiceX es su contrato de servicio WCF

Luego tu código de cliente:

 var client = new ServiceXClient(new WSHttpBinding(SecurityMode.None), new EndpointAddress("http://localhost:911")); client.ServiceXWork("data param", "otherParam param");