Exemplo n.º 1
0
        public void CyclicMethodInjection()
        {
            NeedsMethodInjectionCyclic_A.instanceCount = 0;
            NeedsMethodInjectionCyclic_B.instanceCount = 0;
            NeedsMethodInjectionCyclic_C.instanceCount = 0;

            BindingBuilder bb = new BindingBuilder();

            bb.BindTypeToNewInstances(typeof(NeedsMethodInjectionCyclic_A));
            bb.BindTypeToNewInstances(typeof(NeedsMethodInjectionCyclic_B));
            bb.BindTypeToNewInstances(typeof(NeedsMethodInjectionCyclic_C));

            Injector injector = UniInjectUtils.CreateInjector();

            injector.AddBindings(bb);
            NeedsMethodInjectionCyclic_A aInstance = injector.CreateAndInject <NeedsMethodInjectionCyclic_A>();

            // The dependency in C must have been resolved with the instance of A that was created.
            Assert.NotNull(aInstance.bInstance);
            Assert.NotNull(aInstance.bInstance.cInstance);
            Assert.NotNull(aInstance.bInstance.cInstance.aInstance);
            Assert.AreEqual(aInstance.instanceIndex, aInstance.bInstance.cInstance.aInstance.instanceIndex);
        }
Exemplo n.º 2
0
 public void Set(NeedsMethodInjectionCyclic_A aInstance)
 {
     this.aInstance = aInstance;
 }