public void Singleton_Nested_Should_Same()
        {
            var disposed1 = false;

            using (var resolver = createRootDependencyResolver())
            {
                var ambientScopeContext = createAmbientScopeContext(resolver);
                using (var ambientScope = new AmbientScope())
                {
                    var singleton  = ambientScopeContext.Current.GetService <MockPerSingleton>();
                    var singleton2 = ambientScopeContext.Current.GetService <MockPerSingleton>();

                    singleton.WhenDispose = () => disposed1 = true;
                    singleton2.ShouldSame(singleton);

                    using (var childScope = new AmbientScope())
                    {
                        var child = ambientScopeContext.Current.GetService <MockPerSingleton>();
                        child.ShouldSame(singleton);
                        disposed1.ShouldFalse();
                    }
                    disposed1.ShouldFalse();
                }
            }
            disposed1.ShouldTrue();
        }
Exemple #2
0
        public IAmbientScope  GetScope(ScopeMode mode)
        {
            var scope = new AmbientScope(ContextFactory.CreateContext(), mode);

            ScopeContainer.SetCurrent(scope, scope.instanceIdentifier);
            return(scope);
        }
        public void AmbientScope_Switch_Should_OK()
        {
            using (var resolver = createRootDependencyResolver())
            {
                var ambientScopeContext = createAmbientScopeContext(resolver);

                var myDependencyScope1_1 = ambientScopeContext.Current;
                var myDependencyScope1_2 = ambientScopeContext.Current;
                myDependencyScope1_1.ShouldNotSame(myDependencyScope1_2);

                using (var ambientScope = new AmbientScope())
                {
                    var myDependencyScope2_1 = ambientScopeContext.Current;
                    var myDependencyScope2_2 = ambientScopeContext.Current;
                    myDependencyScope2_1.ShouldSame(myDependencyScope2_2);
                    myDependencyScope2_1.ShouldNotSame(myDependencyScope1_1);

                    using (var ambientScope3 = new AmbientScope())
                    {
                        var myDependencyScope3_1 = ambientScopeContext.Current;
                        var myDependencyScope3_2 = ambientScopeContext.Current;
                        myDependencyScope3_1.ShouldSame(myDependencyScope3_2);
                        myDependencyScope3_1.ShouldNotSame(myDependencyScope1_1);
                        myDependencyScope3_1.ShouldNotSame(myDependencyScope2_1);
                    }
                }
            }
        }
        public void Session_InSameUowScope_Should_Same()
        {
            var disposed1 = false;

            using (var resolver = createRootDependencyResolver())
            {
                var ambientScopeContext = createAmbientScopeContext(resolver);
                using (var ambientScope = new AmbientScope())
                {
                    var session  = ambientScopeContext.Current.GetService <MockPerSession>();
                    var session2 = ambientScopeContext.Current.GetService <MockPerSession>();
                    session.ShouldSame(session2);
                    session.WhenDispose = () => disposed1 = true;
                    disposed1.ShouldFalse();
                }
                disposed1.ShouldTrue();
            }
        }
Exemple #5
0
 public static new void SetDefaultScope(TSelf instance)
 {
     AmbientScope <TSelf> .SetDefaultScope(instance);
 }