public void CanLazilyResolveClientAssociatedWithChannelUsingSuppliedModel()
{
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))
{
var client1 = clientContainer.Resolve<IOperations>(
new
{
Model = new DefaultClientModel
{
Endpoint = WcfEndpoint.BoundTo(new NetTcpBinding())
.At("net.tcp://localhost/Operations2")
}
});
var client2 = clientContainer.Resolve<IOperations>(
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);
}
}
}