예제 #1
0
		public void Should_cache_channelFactory_proxy_types()
		{
			var builder = new AsynChannelFactoryBuilder<DefaultClientModel>(new ProxyGenerator());
			var factory1 = builder.CreateChannelFactory<ChannelFactory<IOperations>>(new DefaultClientModel());
			var factory2 = builder.CreateChannelFactory<ChannelFactory<IOperations>>(new DefaultClientModel());
			Assert.AreSame(factory1.GetType(), factory2.GetType());
		}
예제 #2
0
        public void Should_cache_channelFactory_proxy_types()
        {
            var builder  = new AsynChannelFactoryBuilder <DefaultClientModel>(new ProxyGenerator());
            var factory1 = builder.CreateChannelFactory <ChannelFactory <IOperations> >(new DefaultClientModel());
            var factory2 = builder.CreateChannelFactory <ChannelFactory <IOperations> >(new DefaultClientModel());

            Assert.AreSame(factory1.GetType(), factory2.GetType());
        }
		public void CanProxyChannelFactoriesForAsyncSupport()
		{
			var model = new DefaultClientModel()
				{
					Endpoint = WcfEndpoint
						.BoundTo(new NetTcpBinding { PortSharingEnabled = true })
						.At("net.tcp://localhost/Operations")
				};
			var asyncBuilder = new AsynChannelFactoryBuilder<DefaultClientModel>(new ProxyGenerator());
			var channelFactory = asyncBuilder.CreateChannelFactory<ChannelFactory<IOperations>>(
				model, new NetTcpBinding(), "net.tcp://localhost/Operations");

			var client = channelFactory.CreateChannel();
			Assert.AreEqual(42, client.GetValueFromConstructor());
			((ICommunicationObject)client).Close();
		}