Stashbox by Peter Csajtai

<PackageReference Include="Stashbox" Version="5.2.0" />

 IResolutionScope

Represents a resolution scope.
object Name { get; }

The name of the scope, if it's null then it's a regular nameless scope.

The parent scope.

object AddDisposableTracking(object disposable)

Adds a service to dispose tracking.

object AddRequestContextAwareDisposableTracking(object disposable, IRequestContext requestContext)

Adds a service to dispose tracking.

object AddWithAsyncInitializer(object initializable, Func<object, IDependencyResolver, CancellationToken, Task> initializer)

Adds a service with an async initializer delegate.

object AddWithFinalizer(object finalizable, Action<object> finalizer)

Adds a service with a cleanup delegate.

Called by every node of the internal graph when the RuntimeCircularDependencyTrackingEnabled is true. Checks for runtime circular dependencies in the compiled delegates.

Gets the names of the already opened scopes.

object GetOrAddScopedObject(int key, Func<IResolutionScope, IRequestContext, object> factory, IRequestContext requestContext, Type serviceType)

Returns an existing scoped object or adds it into the scope if it doesn't exist.

Invalidates the delegate cache.

Called by every node of the internal graph when the RuntimeCircularDependencyTrackingEnabled is true. Resets the runtime circular dependency checks state for a node.