Castle.Facilities.WcfIntegration.Tests.WcfClientFixture.CanResolveClientAssociatedWithChannelUsingSuppliedModel C# (CSharp) Method

CanResolveClientAssociatedWithChannelUsingSuppliedModel() private method

		public void CanResolveClientAssociatedWithChannelUsingSuppliedModel()
		{
			using (new WindsorContainer()
				.AddFacility<WcfFacility>(f => f.CloseTimeout = TimeSpan.Zero)
				.Register(Component.For<Operations>()
					.DependsOn(new { number = 28 })
					.AsWcfService(new DefaultServiceModel()
						.AddEndpoints(WcfEndpoint.ForContract<IOperations>()
							.BoundTo(new NetTcpBinding { PortSharingEnabled = true })
							.At("net.tcp://localhost/Operations2")
							)
				)))
			{
				using (var clientContainer = new WindsorContainer()
					.AddFacility<WcfFacility>(f => f.CloseTimeout = TimeSpan.Zero)
					.Register(Component.For<IOperations>()
						.Named("operations")
						.LifeStyle.Transient
						.AsWcfClient()
					))
				{
					var client1 = clientContainer.Resolve<IOperations>("operations",
						new
						{
							Model = new DefaultClientModel
								{
									Endpoint = WcfEndpoint.BoundTo(new NetTcpBinding())
										.At("net.tcp://localhost/Operations2")
								}
						});
					var client2 = clientContainer.Resolve<IOperations>("operations",
						new
						{
							Model = new DefaultClientModel()
								{
									Endpoint = WcfEndpoint.BoundTo(new NetTcpBinding())
										.At("net.tcp://localhost/Operations2")
								}
						});
					Assert.AreEqual(28, client1.GetValueFromConstructor());
					Assert.AreEqual(28, client2.GetValueFromConstructor());
					clientContainer.Release(client1);
					clientContainer.Release(client2);
				}
			}
		}
WcfClientFixture