public void ClassFactory_CreateChildFactory_Returns_Child_That_Contains_Same_Implementations_And_Singletons() { X x = new X(); _ClassFactory.RegisterInstance <IX>(x); _ClassFactory.Register <IY, Y>(); IClassFactory child = _ClassFactory.CreateChildFactory(); Assert.AreSame(x, child.Resolve <IX>()); Assert.IsInstanceOfType(child.Resolve <IY>(), typeof(Y)); }
/// <summary> /// Returns a copy of the current <see cref="Singleton"/>. Subsequent type registrations made to <see cref="Singleton"/> /// will not affect the copy. /// </summary> /// <returns>A copy of the current <see cref="Singleton"/>.</returns> public static IClassFactory TakeSnapshot() { IClassFactory result = _Singleton; _Singleton = _Singleton.CreateChildFactory(); return(result); }