public static Server CreateSingle <TProxy>(BindingConfigurationBase bindingConfiguration, TProxy proxyInstance, ServerConfiguration serverConfiguration = null) { var server = new Server { Host = new ServiceHost(proxyInstance, new Uri(bindingConfiguration.ServiceAddress)) }; server.Initialize(bindingConfiguration, typeof(TProxy), proxyInstance.GetType(), serverConfiguration); return(server); }
public static Server CreateMultiple <TProxy>(BindingConfigurationBase bindingConfiguration, Type proxyImplType, ServerConfiguration serverConfiguration = null) { var server = new Server { Host = new ServiceHost(proxyImplType, new Uri(bindingConfiguration.ServiceAddress)) }; server.Initialize(bindingConfiguration, typeof(TProxy), proxyImplType, serverConfiguration); return(server); }
protected void StartClient(IOutputInput outputInput, BindingConfigurationBase bindingConfigurationBase) { using (var client = new Client <ITestService>(bindingConfigurationBase)) { client.Start(); var message = outputInput.Read("Write message: ", "TestMessage"); var result = client.Proxy.Ping(message); outputInput.WriteLine("Message from server: " + result); } }
protected async Task StartServer(IOutputInput outputInput, BindingConfigurationBase bindingConfigurationBase, ServerConfiguration serverConfiguration) { var service = new TestService(outputInput); var server = Server.CreateSingle <ITestService>(bindingConfigurationBase, service, serverConfiguration); server.Start(); outputInput.WriteLine("Server started at: " + bindingConfigurationBase.ServiceAddress); await outputInput.Wait(); server.Dispose(); }
public ChannelFactory <TProxy> GetChannelFactory(BindingConfigurationBase bindingConfiguration) { if (channelFactories.TryGetValue(bindingConfiguration.ServiceAddress, out ChannelFactory <TProxy> channelFactory)) { return(channelFactory); } else { var newChannelFactory = new ChannelFactory <TProxy>(bindingConfiguration.Binding, new EndpointAddress(bindingConfiguration.ServiceAddress)); channelFactories.Add(bindingConfiguration.ServiceAddress, newChannelFactory); return(newChannelFactory); } }
private void Initialize(BindingConfigurationBase bindingConfiguration, Type proxyType, Type proxyImplType, ServerConfiguration serverConfiguration) { Host.AddServiceEndpoint(proxyType, bindingConfiguration.Binding, string.Empty); ProxyType = proxyType; ProxyImplType = proxyImplType; if (serverConfiguration != null) { if (serverConfiguration.IncludeExceptionDetailInFaults) { ((ServiceBehaviorAttribute)Host.Description.Behaviors[typeof(ServiceBehaviorAttribute)]).IncludeExceptionDetailInFaults = true; } if (serverConfiguration.CreateMexBinding) { SetMexBinding(bindingConfiguration.Binding); } } }
public static Server CreateMultiple <TProxy, TProxyImpl>(BindingConfigurationBase bindingConfiguration) { return(CreateMultiple <TProxy>(bindingConfiguration, typeof(TProxyImpl))); }
public Client(BindingConfigurationBase bindingConfiguration) { ChannelFactory = channelFactoryProvider.GetChannelFactory(bindingConfiguration); }