private static void UseWcfProxy() { var wcfCachingChannelFactoryProvider = new WcfCachingChannelFactoryProvider(); IProxyFactory <ITrialsService> proxyFactory = new WcfProxyFactory <ITrialsService>(wcfCachingChannelFactoryProvider); UseProxyFactory(proxyFactory); }
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); }
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(); } }); }
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; } }
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(); }); }