Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
 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);
     }
 }
Example #4
0
        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);
     }
 }
Example #6
0
        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);
                }
            }
        }
Example #7
0
 public static Server CreateMultiple <TProxy, TProxyImpl>(BindingConfigurationBase bindingConfiguration)
 {
     return(CreateMultiple <TProxy>(bindingConfiguration, typeof(TProxyImpl)));
 }
Example #8
0
 public Client(BindingConfigurationBase bindingConfiguration)
 {
     ChannelFactory = channelFactoryProvider.GetChannelFactory(bindingConfiguration);
 }