Click or drag to resize

ILifetimeScope Interface

An ILifetimeScope tracks the instantiation of component instances. It defines a boundary in which instances are shared and configured. Disposing an ILifetimeScope will dispose the components that were resolved through it.

Namespace:  Autofac
Assembly:  Autofac (in Autofac.dll) Version: 4.9.1+831973f4d02fbc619921dfaa8ac0c536f60ae7a3
Syntax
public interface ILifetimeScope : IComponentContext, 
	IDisposable

The ILifetimeScope type exposes the following members.

Properties
  NameDescription
Public propertyComponentRegistry
Gets the associated services with the components that provide them.
(Inherited from IComponentContext.)
Public propertyDisposer
Gets the disposer associated with this ILifetimeScope. Component instances can be associated with it manually if required.
Public propertyTag
Gets the tag applied to the ILifetimeScope.
Top
Methods
  NameDescription
Public methodBeginLifetimeScope
Begin a new nested scope. Component instances created via the new scope will be disposed along with it.
Public methodBeginLifetimeScope(Object)
Begin a new nested scope. Component instances created via the new scope will be disposed along with it.
Public methodBeginLifetimeScope(ActionContainerBuilder)
Begin a new nested scope, with additional components available to it. Component instances created via the new scope will be disposed along with it.
Public methodBeginLifetimeScope(Object, ActionContainerBuilder)
Begin a new nested scope, with additional components available to it. Component instances created via the new scope will be disposed along with it.
Public methodDispose
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
(Inherited from IDisposable.)
Public methodResolveComponent
Resolve an instance of the provided registration within the context.
(Inherited from IComponentContext.)
Top
Events
  NameDescription
Public eventChildLifetimeScopeBeginning
Fired when a new scope based on the current scope is beginning.
Public eventCurrentScopeEnding
Fired when this scope is ending.
Public eventResolveOperationBeginning
Fired when a resolve operation is beginning in this scope.
Top
Extension Methods
  NameDescription
Public Extension MethodInjectPropertiesTService(TService)Overloaded.
Set any properties on instance that can be resolved in the context.
(Defined by ResolutionExtensions.)
Public Extension MethodInjectPropertiesTService(TService, IEnumerableParameter)Overloaded.
Set any properties on instance that can be resolved in the context.
(Defined by ResolutionExtensions.)
Public Extension MethodInjectPropertiesTService(TService, Parameter)Overloaded.
Set any properties on instance that can be resolved in the context.
(Defined by ResolutionExtensions.)
Public Extension MethodInjectPropertiesTService(TService, IPropertySelector)Overloaded.
Set any properties on instance that can be resolved by service and that satisfy the constraints imposed by propertySelector.
(Defined by ResolutionExtensions.)
Public Extension MethodInjectPropertiesTService(TService, IPropertySelector, IEnumerableParameter)Overloaded.
Set any properties on instance that can be resolved by service and that satisfy the constraints imposed by propertySelector.
(Defined by ResolutionExtensions.)
Public Extension MethodInjectPropertiesTService(TService, IPropertySelector, Parameter)Overloaded.
Set any properties on instance that can be resolved by service and that satisfy the constraints imposed by propertySelector.
(Defined by ResolutionExtensions.)
Public Extension MethodInjectUnsetPropertiesTService(TService)Overloaded.
Set any null-valued properties on instance that can be resolved by the container.
(Defined by ResolutionExtensions.)
Public Extension MethodInjectUnsetPropertiesTService(TService, IEnumerableParameter)Overloaded.
Set any null-valued properties on instance that can be resolved by the container.
(Defined by ResolutionExtensions.)
Public Extension MethodInjectUnsetPropertiesTService(TService, Parameter)Overloaded.
Set any null-valued properties on instance that can be resolved by the container.
(Defined by ResolutionExtensions.)
Public Extension MethodIsRegistered(Type)Overloaded.
Determine whether the specified service is available in the context.
(Defined by ResolutionExtensions.)
Public Extension MethodIsRegisteredTServiceOverloaded.
Determine whether the specified service is available in the context.
(Defined by ResolutionExtensions.)
Public Extension MethodIsRegisteredService
Determine whether the specified service is available in the context.
(Defined by ResolutionExtensions.)
Public Extension MethodIsRegisteredWithKey(Object, Type)Overloaded.
Determine whether the specified service is available in the context.
(Defined by ResolutionExtensions.)
Public Extension MethodIsRegisteredWithKeyTService(Object)Overloaded.
Determine whether the specified service is available in the context.
(Defined by ResolutionExtensions.)
Public Extension MethodIsRegisteredWithName(String, Type)Overloaded.
Determine whether the specified service is available in the context.
(Defined by ResolutionExtensions.)
Public Extension MethodIsRegisteredWithNameTService(String)Overloaded.
Determine whether the specified service is available in the context.
(Defined by ResolutionExtensions.)
Public Extension MethodResolve(Type)Overloaded.
Retrieve a service from the context.
(Defined by ResolutionExtensions.)
Public Extension MethodResolve(Type, IEnumerableParameter)Overloaded.
Retrieve a service from the context.
(Defined by ResolutionExtensions.)
Public Extension MethodResolve(Type, Parameter)Overloaded.
Retrieve a service from the context.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveTServiceOverloaded.
Retrieve a service from the context.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveTService(IEnumerableParameter)Overloaded.
Retrieve a service from the context.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveTService(Parameter)Overloaded.
Retrieve a service from the context.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveExportsTOverloaded.
Locate all of the MEF exports registered as supplying contract type T.
(Defined by RegistrationExtensions.)
Public Extension MethodResolveExportsT(String)Overloaded.
Locate all of the MEF exports registered as supplying contract type T.
(Defined by RegistrationExtensions.)
Public Extension MethodResolveKeyed(Object, Type)Overloaded.
Retrieve a service from the context.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveKeyed(Object, Type, IEnumerableParameter)Overloaded.
Retrieve a service from the context.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveKeyed(Object, Type, Parameter)Overloaded.
Retrieve a service from the context.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveKeyedTService(Object)Overloaded.
Retrieve a service from the context.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveKeyedTService(Object, IEnumerableParameter)Overloaded.
Retrieve a service from the context.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveKeyedTService(Object, Parameter)Overloaded.
Retrieve a service from the context.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveNamed(String, Type)Overloaded.
Retrieve a service from the context.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveNamed(String, Type, IEnumerableParameter)Overloaded.
Retrieve a service from the context.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveNamed(String, Type, Parameter)Overloaded.
Retrieve a service from the context.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveNamedTService(String)Overloaded.
Retrieve a service from the context.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveNamedTService(String, IEnumerableParameter)Overloaded.
Retrieve a service from the context.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveNamedTService(String, Parameter)Overloaded.
Retrieve a service from the context.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveOptional(Type)Overloaded.
Retrieve a service from the context, or null if the service is not registered.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveOptional(Type, IEnumerableParameter)Overloaded.
Retrieve a service from the context, or null if the service is not registered.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveOptional(Type, Parameter)Overloaded.
Retrieve a service from the context, or null if the service is not registered.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveOptionalTServiceOverloaded.
Retrieve a service from the context, or null if the service is not registered.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveOptionalTService(IEnumerableParameter)Overloaded.
Retrieve a service from the context, or null if the service is not registered.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveOptionalTService(Parameter)Overloaded.
Retrieve a service from the context, or null if the service is not registered.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveOptionalKeyedTService(Object)Overloaded.
Retrieve a service from the context, or null if the service is not registered.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveOptionalKeyedTService(Object, IEnumerableParameter)Overloaded.
Retrieve a service from the context, or null if the service is not registered.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveOptionalKeyedTService(Object, Parameter)Overloaded.
Retrieve a service from the context, or null if the service is not registered.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveOptionalNamedTService(String)Overloaded.
Retrieve a service from the context, or null if the service is not registered.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveOptionalNamedTService(String, IEnumerableParameter)Overloaded.
Retrieve a service from the context, or null if the service is not registered.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveOptionalNamedTService(String, Parameter)Overloaded.
Retrieve a service from the context, or null if the service is not registered.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveOptionalService(Service)Overloaded.
Retrieve a service from the context, or null if the service is not registered.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveOptionalService(Service, IEnumerableParameter)Overloaded.
Retrieve a service from the context, or null if the service is not registered.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveOptionalService(Service, Parameter)Overloaded.
Retrieve a service from the context, or null if the service is not registered.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveService(Service)Overloaded.
Retrieve a service from the context.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveService(Service, IEnumerableParameter)Overloaded.
Retrieve a service from the context.
(Defined by ResolutionExtensions.)
Public Extension MethodResolveService(Service, Parameter)Overloaded.
Retrieve a service from the context.
(Defined by ResolutionExtensions.)
Public Extension MethodTryResolve(Type, Object)Overloaded.
Try to retrieve a service from the context.
(Defined by ResolutionExtensions.)
Public Extension MethodTryResolveT(T)Overloaded.
Try to retrieve a service from the context.
(Defined by ResolutionExtensions.)
Public Extension MethodTryResolveKeyed
Try to retrieve a service from the context.
(Defined by ResolutionExtensions.)
Public Extension MethodTryResolveNamed
Try to retrieve a service from the context.
(Defined by ResolutionExtensions.)
Public Extension MethodTryResolveService(Service, Object)Overloaded.
Try to retrieve a service from the context.
(Defined by ResolutionExtensions.)
Public Extension MethodTryResolveService(Service, IEnumerableParameter, Object)Overloaded.
Try to retrieve a service from the context.
(Defined by ResolutionExtensions.)
Top
Remarks
All long-running applications should resolve components via an ILifetimeScope. Choosing the duration of the lifetime is application- specific. The standard Autofac WCF and ASP.NET/MVC integrations are already configured to create and release ILifetimeScopes as appropriate. For example, the ASP.NET integration will create and release an ILifetimeScope per HTTP request. Most ILifetimeScope functionality is provided by extension methods on the inherited IComponentContext interface.
Examples
// See IContainer for definition of the container variable
using (var requestScope = container.BeginLifetimeScope())
{
    // Note that handler is resolved from requestScope, not
    // from the container:

    var handler = requestScope.Resolve<IRequestHandler>();
    handler.Handle(request);

    // When requestScope is disposed, all resources used in processing
    // the request will be released.
}
See Also