public void TryResolve_WithAttrInjection_AttrMarkedProperiesGetInjected() { MvxSingleton.ClearAllSingletons(); var options = new MvxIocOptions { PropertyInjectorOptions = new MvxPropertyInjectorOptions() { InjectIntoProperties = MvxPropertyInjection.MvxInjectInterfaceProperties } }; var instance = MvxSimpleIoCContainer.Initialize(options); Mvx.RegisterType<IA, A>(); Mvx.RegisterType<IB, B>(); Mvx.RegisterType<IC, C>(); IA a; var result = Mvx.TryResolve(out a); Assert.IsTrue(result); Assert.IsNotNull(a); Assert.IsInstanceOf<A>(a); var castA = (A)a; Assert.IsNotNull(castA.B); Assert.IsInstanceOf<B>(castA.B); Assert.IsNull(castA.C); Assert.IsNull(castA.BNever); Assert.IsNull(castA.CNever); }
public void TryResolve_CircularButSafeDynamicWithOptionOff_ReturnsTrue() { COdd.FirstTime = true; MvxSingleton.ClearAllSingletons(); var options = new MvxIocOptions() { TryToDetectDynamicCircularReferences = false }; var instance = MvxSimpleIoCContainer.Initialize(options); Mvx.RegisterType<IA, A>(); Mvx.RegisterType<IB, B>(); Mvx.RegisterType<IC, COdd>(); IA a; var result = Mvx.TryResolve(out a); Assert.IsTrue(result); Assert.IsNotNull(a); }