Beispiel #1
0
        private static void UseWcfProxy()
        {
            var wcfCachingChannelFactoryProvider        = new WcfCachingChannelFactoryProvider();
            IProxyFactory <ITrialsService> proxyFactory = new WcfProxyFactory <ITrialsService>(wcfCachingChannelFactoryProvider);

            UseProxyFactory(proxyFactory);
        }
Beispiel #2
0
 public WcfClientActivator(ComponentModel model, IKernel kernel,
                           ComponentInstanceDelegate onCreation, ComponentInstanceDelegate onDestruction)
     : base(model, kernel, onCreation, onDestruction)
 {
     clients      = kernel.Resolve <WcfClientExtension>();
     proxyFactory = new WcfProxyFactory(clients.ProxyGenerator, clients);
 }
        public void wcf_proxy_fowards_calls_to_wcf_channel()
        {
            // Arrange
            Func<object> createChannel = () =>
                ChannelFactory<IHelloWorldService>
                    .CreateChannel(new NetTcpBinding(), new EndpointAddress(uri));
            var factory = new WcfProxyFactory();
            var proxy = factory.Create<IDisposableHelloWorldService>(createChannel);

            // Act
            var result = proxy.HelloWorld();

            // Assert
            Assert.Equal("Hello World!", result);
        }
Beispiel #4
0
        public void ExecuteCommand <TService>(Action <TService> command) where TService : class, IServiceContract
        {
            var proxy = WcfProxyFactory.CreateProxy <TService>();

            SetCredential <TService>(proxy);
            try
            {
                command.Invoke(proxy.WcfChannel);
                proxy.Close();
            }
            catch (Exception)
            {
                proxy.Abort();
                throw;
            }
        }
        public void wcf_proxy_does_not_throw_communication_object_faulted_exception_when_faulted_channel_disposed()
        {
            // Arrange
            Func<object> createChannel = () =>
                ChannelFactory<IHelloWorldService>
                    .CreateChannel(new NetTcpBinding(), new EndpointAddress(uri));
            var factory = new WcfProxyFactory();
            var proxy = factory.Create<IDisposableHelloWorldService>(createChannel);

            Assert.Throws<FaultException>(delegate
            {
                using (proxy)
                {
                    proxy.ThrowException();
                }
            });
        }
Beispiel #6
0
        public TResult ExecuteSimpleCommand <TService, TResult>(Func <TService, TResult> command)
            where TService : class, IServiceContract
        {
            var proxy = WcfProxyFactory.CreateProxy <TService>();

            SetCredential <TService>(proxy);

            try
            {
                var result = command.Invoke(proxy.WcfChannel);
                proxy.Close();
                return(result);
            }
            catch (Exception)
            {
                proxy.Abort();
                throw;
            }
        }
Beispiel #7
0
 private static void UseWcfProxy()
 {
     var wcfCachingChannelFactoryProvider = new WcfCachingChannelFactoryProvider();
     IProxyFactory<ITrialsService> proxyFactory = new WcfProxyFactory<ITrialsService>(wcfCachingChannelFactoryProvider);
     UseProxyFactory(proxyFactory);
 }
        public void wcf_proxy_refreshes_faulted_channel_before_invoking()
        {
            // Arrange
            Func<object> createChannel = () =>
                ChannelFactory<IHelloWorldService>
                    .CreateChannel(new NetTcpBinding(), new EndpointAddress(uri));
            var factory = new WcfProxyFactory();
            var proxy = factory.Create<IDisposableHelloWorldService>(createChannel);

            // Act
            try
            {
                proxy.ThrowException();
            }
            catch
            {
            }

            // Assert
            var accessor = proxy as IProxyTargetAccessor;
            var manager = accessor.DynProxyGetTarget() as IWcfChannelManager;

            Assert.Equal(CommunicationState.Faulted, manager.Channel.State);
            Assert.DoesNotThrow(delegate
            {
                proxy.HelloWorld();
            });
        }
        public void wcf_proxy_disposes_faulted_channel_without_throwing()
        {
            // Arrange
            Func<object> createChannel = () =>
                ChannelFactory<IHelloWorldService>
                    .CreateChannel(new NetTcpBinding(), new EndpointAddress(uri));
            var factory = new WcfProxyFactory();
            var proxy = factory.Create<IDisposableHelloWorldService>(createChannel);

            // Act
            try
            {
                proxy.ThrowException();
            }
            catch
            {
            }

            // Assert
            Assert.DoesNotThrow(delegate
            {
                proxy.Dispose();
            });
        }