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

CanRecoverFromCommunicationExceptionAsynchronously() private method

		public void CanRecoverFromCommunicationExceptionAsynchronously()
		{
			Func<IWindsorContainer> createLocalContainer = () =>
				new WindsorContainer()
				.AddFacility<WcfFacility>(f => f.CloseTimeout = TimeSpan.Zero)
				.Register(
					Component.For<Operations>()
						.DependsOn(new { number = 42 })
						.AsWcfService(new DefaultServiceModel().AddEndpoints(
							WcfEndpoint.ForContract<IOperations>()
								.BoundTo(new NetTcpBinding { PortSharingEnabled = true })
								.At("net.tcp://localhost/Operations1"),
							WcfEndpoint.ForContract<IOperationsEx>()
								.BoundTo(new NetTcpBinding { PortSharingEnabled = true })
								.At("net.tcp://localhost/Operations1/Ex")
								)
						)
					);

			windsorContainer.Register(
				Component.For<IOperationsEx>()
					.Named("operations")
					.AsWcfClient(new DefaultClientModel()
					{
						Endpoint = WcfEndpoint
							.BoundTo(new NetTcpBinding { PortSharingEnabled = true })
							.At("net.tcp://localhost/Operations1/Ex")
					})
				);
			IOperationsEx client = null;

			using (createLocalContainer())
			{
				client = windsorContainer.Resolve<IOperationsEx>("operations");
				client.BeginWcfCall(p => p.Backup(new Dictionary<string, object>())).End();
			}

			using (createLocalContainer())
			{
				client.BeginWcfCall(p => p.Backup(new Dictionary<string, object>())).End();
			}
		}
WcfClientFixture