Cross-posted with 
http://stackoverflow.com/questions/5801397/resolving-parent-child-with-castle-windsor

I am not sure calling this parent/child but here you go, I have a similar 
case like this:

namespace ConsoleApplication1
{
    using System.Diagnostics;
    using System.Linq;
    using Castle.MicroKernel.Registration;
    using Castle.MicroKernel.Resolvers.SpecializedResolvers;
    using Castle.Windsor;
    
    class Program
    {
        static void Main(string[] args)
        {
            var container = new WindsorContainer();
 
            container.Kernel.Resolver.AddSubResolver(new 
CollectionResolver(container.Kernel));
 
            container.Register(
                Component.For<Parent>().LifeStyle.Singleton,
                
Component.For<IChild>().ImplementedBy<Child1>().LifeStyle.Singleton);
 
            var p = container.Resolve<Parent>();
 
            // Fails...
            Debug.Assert(p.Children.First().Parent == p, "Parent should be 
resolved");
        }
    }
 
    class Parent
    {
        public IChild[] Children { get; set; }
    }
 
    interface IChild
    {
        Parent Parent { get; set; }
    }
 
    class Child1 : IChild
    {
        public Parent Parent { get; set; }
    }
}

I have CollectionResolver added to the container. Both Parent and Child1 
(with IChild service) are registered as singletons in the container. 
Whenever I try to resolve the Parent instance, I got my Children array 
populated but the Child1 instance in that array has a Parent of null. What I 
am expecting is the Parent property of the Child1 to be set to the Parent 
instance I am trying to resolve at that moment. I can understand that Parent 
is not fully activated yet, but since its ctor is run, can't Windsor inject 
this property yet? Are there any way to make this work or should I manually 
run some code to set Parents of child objects (which is far from ideal)?

Thanks in advance!

-- 
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.

Reply via email to