Scope Class

Simple Injector
Implements a cache for ScopedLifestyle implementations.
Inheritance Hierarchy

SystemObject
  SimpleInjector.AdvancedApiObject
    SimpleInjectorScope

Namespace:  SimpleInjector
Assembly:  SimpleInjector (in SimpleInjector.dll) Version: 5.3.0
Syntax

public class Scope : ApiObject, IDisposable, 
	IServiceProvider

The Scope type exposes the following members.

Constructors

  NameDescription
Public methodScope Obsolete.
Initializes a new instance of the Scope class.
Public methodScope(Container)
Initializes a new instance of the Scope class.
Top
Properties

  NameDescription
Public propertyContainer
Gets the container instance that this scope belongs to.
Top
Methods

  NameDescription
Public methodDispose
Releases all instances that are cached by the Scope object.
Protected methodDispose(Boolean)
Releases all instances that are cached by the Scope object.
Public methodDisposeScopeAsync
Releases all instances that are cached by the Scope object asynchronously.
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from ApiObject.)
Public methodGetAllDisposables
Returns a copy of the list of IDisposable and IAsyncDisposable instances that will be disposed of when this Scope instance is being disposed. The list contains scoped instances that are cached in this Scope instance, and instances explicitly registered for disposal using RegisterForDisposal(Object). The instances are returned in order of creation. When Scope.Dispose is called, the scope will ensure Dispose is called on each instance in this list. The instance will be disposed in opposite order as they appear in the list.
Public methodGetDisposables
Returns a copy of the list of IDisposable instances that will be disposed of when this Scope instance is being disposed. The list contains scoped instances that are cached in this Scope instance, and instances explicitly registered for disposal using RegisterForDisposal(IDisposable). The instances are returned in order of creation. When Scope.Dispose is called, the scope will ensure Dispose is called on each instance in this list. The instance will be disposed in opposite order as they appear in the list.
Public methodGetHashCode
Serves as the default hash function.
(Inherited from ApiObject.)
Public methodGetInstance(Type)
Gets an instance of the given serviceType for the current scope.
Public methodGetInstanceTService
Gets an instance of the given TService for the current scope.
Public methodGetItem
Retrieves an item from the scope stored by the given key or null when no item is stored by that key.
Public methodGetType
Gets the Type of the current instance.
(Inherited from ApiObject.)
Public methodRegisterForDisposal(IDisposable)
Adds the disposable to the list of items that will get disposed when the scope ends.
Public methodRegisterForDisposal(Object)
Adds the disposable to the list of items that will get disposed when the scope ends.
Public methodSetItem
Stores an item by the given key in the scope.
Public methodToString
Returns a string that represents the current object.
(Inherited from ApiObject.)
Public methodWhenScopeEnds
Allows registering an action delegate that will be called when the scope ends, but before the scope disposes any instances.
Top
Explicit Interface Implementations

  NameDescription
Explicit interface implementationPrivate methodIServiceProviderGetService
Gets the service object of the specified type.
Top
Remarks

Scope is thread safe can be used over multiple threads concurrently, but methods that are related to the disposal of the Scope (e.g. GetDisposables, Dispose, and DisposeAsync() are not thread safe and can't be used in combination with the thread-safe methods. This means that once the Scope is ready for disposal, only a single thread should access it. Also note that although the scope is thread safe, cached instances might not be.
See Also

Reference