public TService CreateClient <TService>(EndpointAddress address, IConnectionParameters connectionParameters, MessageVersion messageEncodingVersion, int timeout) { CustomBinding binder = CreateCustomBinding(connectionParameters.ConnectionTimeout, connectionParameters.Credentials, messageEncodingVersion); binder.SendTimeout = binder.CloseTimeout = binder.ReceiveTimeout = binder.OpenTimeout = TimeSpan.FromSeconds(timeout); var factory = new ChannelFactory <TService>(binder); var clientInspector = new CustomMessageInspector(); if (_securityToken != null) { clientInspector.Headers.Add(new DigestSecurityHeader(connectionParameters.Credentials, _securityToken)); } var behavior = new CustomEndpointBehavior(clientInspector); factory.Endpoint.Behaviors.Add(behavior); if (factory.Credentials != null) { factory.Credentials.UserName.UserName = connectionParameters.Credentials.UserName; factory.Credentials.UserName.Password = connectionParameters.Credentials.Password; } TService service = factory.CreateChannel(address); return(service); }
public TService CreateClient <TService>(EndpointAddress address, ConnectionParameters connectionParameters, MessageVersion messageEncodingVersion) { CustomBinding customBinding = CreateCustomBinding(connectionParameters.ConnectionTimeout, connectionParameters.Credentials, messageEncodingVersion); #pragma warning disable CA2000 // Dispose objects before losing scope ChannelFactory <TService> factory = new ChannelFactory <TService>(customBinding); #pragma warning restore CA2000 // Dispose objects before losing scope var clientInspector = new CustomMessageInspector(); if (securityToken != null) { clientInspector.Headers.Add(new DigestSecurityHeader(connectionParameters.Credentials, securityToken)); } var behavior = new CustomEndpointBehavior(clientInspector); factory.Endpoint.Behaviors.Add(behavior); if (factory.Credentials != null) { factory.Credentials.UserName.UserName = connectionParameters.Credentials.UserName; factory.Credentials.UserName.Password = connectionParameters.Credentials.Password; } TService service = factory.CreateChannel(address); return(service); }
public void ApplyClientBehavior(ServiceEndpoint endpoint, ClientRuntime clientRunTime) { CustomMessageInspector inspector = new CustomMessageInspector(); clientRunTime.MessageInspectors.Add(inspector); }
public void ApplyClientBehavior(ServiceEndpoint endpoint, System.ServiceModel.Dispatcher.ClientRuntime clientRuntime) { var inspector = new CustomMessageInspector(); clientRuntime.MessageInspectors.Add(inspector); }