コード例 #1
0
        protected object GetStateObject(TKey key)
        {
            if (_descriptors.TryGetDescriptor(key,
                                              out IScopedStateDescriptor <TKey> descriptor))
            {
                IServiceProvider             services     = _globalServices;
                StateObjectCollection <TKey> stateObjects = _globalStates;

                if (descriptor.Scope == ExecutionScope.Request)
                {
                    services     = _requestServices;
                    stateObjects = _requestStates;
                }

                if (stateObjects.TryGetObject(key, out object instance))
                {
                    return(instance);
                }

                return(stateObjects.CreateObject(descriptor,
                                                 _descriptors.CreateFactory(services, descriptor)));
            }

            return(null);
        }
コード例 #2
0
        protected object GetStateObject(TKey key)
        {
            if (_descriptors.TryGetDescriptor(key,
                                              out IScopedStateDescriptor <TKey> descriptor))
            {
                StateObjectCollection <TKey> objects = _scopes[descriptor.Scope];

                if (objects.TryGetObject(key, out object instance))
                {
                    return(instance);
                }

                return(objects.CreateObject(
                           descriptor, _descriptors.CreateFactory(_root, descriptor)));
            }

            return(null);
        }