Example #1
0
        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));
        }
Example #2
0
        /// <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);
        }