gimmi
9/17/2011 - 8:00 AM

Windsor 3 scoped disposing

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;
	}
}