que c# wcf wcf-binding wcf-client

c# - que es wcf



¿Cómo conectar un cliente mediante programación a un servicio WCF? (2)

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

public class ServiceXClient : ClientBase<IServiceX>, 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");

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<IMyService>(myBinding, myEndpoint); IMyService client = null; try { client = myChannelFactory.CreateChannel(); client.MyServiceOperation(); ((ICommunicationObject)client).Close(); } catch { if (client != null) { ((ICommunicationObject)client).Abort(); } }

Recursos Relacionados: