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); }
public void Set(NeedsMethodInjectionCyclic_A aInstance) { this.aInstance = aInstance; }