Windsor 3 scoped disposing
[Test]
public void Should_resolve_lazy_components()
{
var container = new WindsorContainer();
container.Register(Component.For<LazyOfTComponentLoader>());
container.Register(Component.For<A>().LifeStyle.Transient);
var a = container.Resolve<A>(); // Ok
var lazyA = container.Resolve<Lazy<A>>(); // Fail
}
public class A
{
}
[Test]
public void Should_release_scoped_component_when_scope_is_disposed2()
{
var container = new WindsorContainer();
container.Register(Component.For<A>().LifestyleScoped());
A a;
using(container.BeginScope())
{
a = container.Resolve<A>();
}
Assert.IsTrue(a.Disposed);
}
public class A : IDisposable
{
public bool Disposed;
public void Dispose()
{
Disposed = true;
}
}