Example #1
0
        public void ResolveItemsFormChildContainer()
        {
            IDiContainer container = CreateConntainer();

            container
            .Register <IFoo, Foo>()
            .Register <IBar, Bar>();

            IDiContainer childContainer = container.CreateChildContainer();

            childContainer.Register <IFoo, FooChild>();

            IFoo instance = container.GetInstance <IFoo>();

            instance.Should()
            .NotBeNull()
            .And.BeOfType <Foo>();

            IFoo childInstance = childContainer.GetInstance <IFoo>();

            childInstance.Should()
            .NotBeNull()
            .And.BeOfType <FooChild>();

            IBar parentInstance = childContainer.GetInstance <IBar>();

            parentInstance.Should()
            .NotBeNull()
            .And.BeOfType <Bar>();
            (parentInstance as Bar).Foo.Should()
            .NotBeNull()
            .And.BeOfType <FooChild>();
        }