public IInstanceTestService GetService(string username, string password) { if (_singleton == null) { var url = new Uri(TestingServer.BaseAddress, "singleton"); var binding = new WS2007HttpBinding(SecurityMode.TransportWithMessageCredential); binding.Security.Message.ClientCredentialType = MessageCredentialType.UserName; binding.Security.Message.EstablishSecurityContext = false; var endpoint = new EndpointAddress(url); var factory = new ChannelFactory <IInstanceTestService>(binding, endpoint); factory.Credentials.UserName.UserName = username; factory.Credentials.UserName.Password = password; var client = factory.CreateChannel(); _singleton = client; var channel = client as ICommunicationObject; channel.Closed += (sender, args) => { _singleton = null; }; } return(_singleton); }
public IInstanceTestService GetSingletonService() { if (_singleton == null) { var url = new Uri(TestingServer.BaseAddress, "singleton"); var binding = new BasicHttpBinding(); var endpoint = new EndpointAddress(url); var factory = new ChannelFactory <IInstanceTestService>(binding, endpoint); var client = factory.CreateChannel(); _singleton = client; var channel = client as ICommunicationObject; channel.Closed += (sender, args) => { _singleton = null; }; } return(_singleton); }