Here is test demonstrating the issue
[Test]
public void Test()
{
var c = new WindsorContainer();
var myFacilty = new MyFacilty();
c.AddFacility("my", myFacilty);
c.Register(Component.For<A>());
Assert.AreEqual(HandlerState.WaitingDependency,
myFacilty.Handlers["Tests.A"].CurrentState);
c.Register(Component.For<B>().Instance(new B()));
Assert.AreEqual(HandlerState.Valid,
myFacilty.Handlers["Tests.A"].CurrentState);
var a = c.Resolve<A>();
Assert.IsTrue(myFacilty.OnHandlerStateChangedWasCalled,
"OnHandlerStateChanged was not raised");
}
//Classes used in test
namespace Tests
{
public class MyFacilty : AbstractFacility
{
public MyFacilty()
{
Handlers = new Dictionary<string, IHandler>();
}
protected override void Init()
{
Kernel.ComponentRegistered += KernelOnComponentRegistered;
}
private void KernelOnComponentRegistered(string key, IHandler
handler)
{
Handlers.Add(key, handler);
if (handler.CurrentState ==
HandlerState.WaitingDependency)
{
handler.OnHandlerStateChanged +=
onHandlerStateChanged;
}
}
private void onHandlerStateChanged(object source, EventArgs
args)
{
Console.WriteLine("onHandlerStateChanged");
}
public bool OnHandlerStateChangedWasCalled { get; set; }
public Dictionary<string, IHandler> Handlers { get; set; }
}
public struct B
{
}
public class A
{
public A(B b)
{
}
}
}
--
You received this message because you are subscribed to the Google Groups
"Castle Project Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/castle-project-users?hl=en.