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); }
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); }