Show / Hide Table of Contents

Interface IUnityContainerAsync

Interface defining the behavior of the Unity dependency injection container.

Inherited Members
IDisposable.Dispose()
Namespace: Unity
Assembly: Unity.Abstractions.dll
Syntax
[CLSCompliant(true)]
public interface IUnityContainerAsync : IDisposable

Properties

| Improve this Doc View Source

Parent

The parent of this container.

Declaration
IUnityContainerAsync Parent { get; }
Property Value
Type Description
IUnityContainerAsync

The parent container, or null if this container doesn't have one.

| Improve this Doc View Source

Registrations

Lists all registrations available at this container.

Declaration
IEnumerable<IContainerRegistration> Registrations { get; }
Property Value
Type Description
IEnumerable<IContainerRegistration>
Remarks

This collection contains all registrations from this container as well as from all predecessor containers if this is a child container. Registrations from child containers override registrations with same type and name from parent containers. The sort order of returned registrations is not guaranteed in any way.

Methods

| Improve this Doc View Source

CreateChildContainer()

Create a child container.

Declaration
IUnityContainerAsync CreateChildContainer()
Returns
Type Description
IUnityContainerAsync

The new child container.

Remarks

A child container shares the parent's configuration, but can be configured with different settings or lifetime.

| Improve this Doc View Source

IsRegistered(Type, String)

This is a fast way to check if type is registered with container

Declaration
bool IsRegistered(Type type, string name)
Parameters
Type Name Description
Type type

Type to look for

String name

Name of the registration

Returns
Type Description
Boolean
Remarks

This method is quite fast. Although it is not free in terms of time spent, it uses the same algorithm the container employs to obtain registrations and wastes very little time.

| Improve this Doc View Source

RegisterFactory(IEnumerable<Type>, String, Func<IUnityContainer, Type, String, Object>, IFactoryLifetimeManager)

Register Type factory with the container

Declaration
Task RegisterFactory(IEnumerable<Type> interfaces, string name, Func<IUnityContainer, Type, string, object> factory, IFactoryLifetimeManager lifetimeManager)
Parameters
Type Name Description
IEnumerable<Type> interfaces

Collection of interfaces that factory exposes to container

String name

Name for registration

Func<IUnityContainer, Type, String, Object> factory
IFactoryLifetimeManager lifetimeManager

The LifetimeManager that controls the lifetime of the returned instance.

Returns
Type Description
Task

Returns Task indicating when registration is done

| Improve this Doc View Source

RegisterInstance(IEnumerable<Type>, String, Object, IInstanceLifetimeManager)

Register an instance with the container.

Declaration
Task RegisterInstance(IEnumerable<Type> interfaces, string name, object instance, IInstanceLifetimeManager lifetimeManager)
Parameters
Type Name Description
IEnumerable<Type> interfaces

Collection of interfaces that instance exposes to container

String name

Name for registration

Object instance

Object to be registered

IInstanceLifetimeManager lifetimeManager

LifetimeManager manager that controls how this instance will be managed by the container. Following are the only valid options: ContainerControlledLifetimeManager, SingletonLifetimeManager, ExternallyControlledLifetimeManager

Returns
Type Description
Task

Returns Task indicating when registration is done

Remarks

Instance registration is much like setting a type as a singleton, except that instead of the container creating the instance the first time it is requested, the user creates the instance ahead of type and adds that instance to the container.

| Improve this Doc View Source

RegisterType(IEnumerable<Type>, Type, String, ITypeLifetimeManager, InjectionMember[])

Registers implementation type via provided collection of it's interfaces.

Declaration
Task RegisterType(IEnumerable<Type> interfaces, Type type, string name, ITypeLifetimeManager lifetimeManager, params InjectionMember[] injectionMembers)
Parameters
Type Name Description
IEnumerable<Type> interfaces

Collection of interfaces that type exposes to container

Type type

Type that will be used to instantiate object.

String name

Name of the registration

ITypeLifetimeManager lifetimeManager

Lifetime manager that will be responsible for managing created object's lifetime.

InjectionMember[] injectionMembers

Injection configuration objects.

Returns
Type Description
Task

Returns Task indicating when registration is done

Remarks

This method allows creation of single registration for multiple interfaces the object of type might be exposing. Registrations created with this method are self contained and will never 'Map' to other registrations. In other words this registration will always create build plan and resolve new objects through it.

| Improve this Doc View Source

Resolve(Type, Regex, ResolverOverride[])

Resolve an instance of the requested type from the container.

Declaration
ValueTask<IEnumerable<object>> Resolve(Type type, Regex regex, params ResolverOverride[] overrides)
Parameters
Type Name Description
Type type

Type of object to get typeFrom the container.

Regex regex

Pattern to match names to. Only these with successful will be resolved

ResolverOverride[] overrides

Any overrides for the resolve call.

Returns
Type Description
ValueTask<IEnumerable<Object>>

The retrieved object.

| Improve this Doc View Source

ResolveAsync(Type, String, ResolverOverride[])

Resolve an instance of the requested type from the container.

Declaration
ValueTask<object> ResolveAsync(Type type, string name, params ResolverOverride[] overrides)
Parameters
Type Name Description
Type type

Type of object to get typeFrom the container.

String name

Name of the object to retrieve.

ResolverOverride[] overrides

Any overrides for the resolve call.

Returns
Type Description
ValueTask<Object>

The retrieved object.

Extension Methods

UnityContainerAsyncExtensions.RegisterType<T>(IUnityContainerAsync, InjectionMember[])
UnityContainerAsyncExtensions.RegisterType<T>(IUnityContainerAsync, ITypeLifetimeManager, InjectionMember[])
UnityContainerAsyncExtensions.RegisterType<T>(IUnityContainerAsync, String, InjectionMember[])
UnityContainerAsyncExtensions.RegisterType<T>(IUnityContainerAsync, String, ITypeLifetimeManager, InjectionMember[])
UnityContainerAsyncExtensions.RegisterType<TFrom, TTo>(IUnityContainerAsync, InjectionMember[])
UnityContainerAsyncExtensions.RegisterType<TFrom, TTo>(IUnityContainerAsync, ITypeLifetimeManager, InjectionMember[])
UnityContainerAsyncExtensions.RegisterType<TFrom, TTo>(IUnityContainerAsync, String, InjectionMember[])
UnityContainerAsyncExtensions.RegisterType<TFrom, TTo>(IUnityContainerAsync, String, ITypeLifetimeManager, InjectionMember[])
UnityContainerAsyncExtensions.RegisterSingleton<T>(IUnityContainerAsync, InjectionMember[])
UnityContainerAsyncExtensions.RegisterSingleton<T>(IUnityContainerAsync, String, InjectionMember[])
UnityContainerAsyncExtensions.RegisterSingleton<TFrom, TTo>(IUnityContainerAsync, InjectionMember[])
UnityContainerAsyncExtensions.RegisterSingleton<TFrom, TTo>(IUnityContainerAsync, String, InjectionMember[])
UnityContainerAsyncExtensions.RegisterType(IUnityContainerAsync, Type, InjectionMember[])
UnityContainerAsyncExtensions.RegisterType(IUnityContainerAsync, Type, ITypeLifetimeManager, InjectionMember[])
UnityContainerAsyncExtensions.RegisterType(IUnityContainerAsync, Type, String, InjectionMember[])
UnityContainerAsyncExtensions.RegisterType(IUnityContainerAsync, Type, String, ITypeLifetimeManager, InjectionMember[])
UnityContainerAsyncExtensions.RegisterType(IUnityContainerAsync, IEnumerable<Type>, Type, InjectionMember[])
UnityContainerAsyncExtensions.RegisterType(IUnityContainerAsync, IEnumerable<Type>, Type, String, InjectionMember[])
UnityContainerAsyncExtensions.RegisterType(IUnityContainerAsync, IEnumerable<Type>, Type, ITypeLifetimeManager, InjectionMember[])
UnityContainerAsyncExtensions.RegisterSingleton(IUnityContainerAsync, Type, InjectionMember[])
UnityContainerAsyncExtensions.RegisterSingleton(IUnityContainerAsync, Type, String, InjectionMember[])
UnityContainerAsyncExtensions.RegisterSingleton(IUnityContainerAsync, IEnumerable<Type>, Type, InjectionMember[])
UnityContainerAsyncExtensions.RegisterSingleton(IUnityContainerAsync, IEnumerable<Type>, Type, String, InjectionMember[])
UnityContainerAsyncExtensions.RegisterInstance<TInterface>(IUnityContainerAsync, TInterface)
UnityContainerAsyncExtensions.RegisterInstance<TInterface>(IUnityContainerAsync, TInterface, IInstanceLifetimeManager)
UnityContainerAsyncExtensions.RegisterInstance<TInterface>(IUnityContainerAsync, String, TInterface)
UnityContainerAsyncExtensions.RegisterInstance<TInterface>(IUnityContainerAsync, String, TInterface, IInstanceLifetimeManager)
UnityContainerAsyncExtensions.RegisterInstance(IUnityContainerAsync, Type, Object)
UnityContainerAsyncExtensions.RegisterInstance(IUnityContainerAsync, Type, Object, IInstanceLifetimeManager)
UnityContainerAsyncExtensions.RegisterInstance(IUnityContainerAsync, Type, String, Object)
UnityContainerAsyncExtensions.RegisterFactory<TInterface>(IUnityContainerAsync, Func<IUnityContainer, Object>, IFactoryLifetimeManager)
UnityContainerAsyncExtensions.RegisterFactory<TInterface>(IUnityContainerAsync, Func<IUnityContainer, Type, String, Object>, IFactoryLifetimeManager)
UnityContainerAsyncExtensions.RegisterFactory<TInterface>(IUnityContainerAsync, String, Func<IUnityContainer, Object>, IFactoryLifetimeManager)
UnityContainerAsyncExtensions.RegisterFactory<TInterface>(IUnityContainerAsync, String, Func<IUnityContainer, Type, String, Object>, IFactoryLifetimeManager)
UnityContainerAsyncExtensions.RegisterFactory(IUnityContainerAsync, Type, Func<IUnityContainerAsync, Object>, IFactoryLifetimeManager)
UnityContainerAsyncExtensions.RegisterFactory(IUnityContainerAsync, Type, Func<IUnityContainerAsync, Type, String, Object>, IFactoryLifetimeManager)
UnityContainerAsyncExtensions.RegisterFactory(IUnityContainerAsync, Type, String, Func<IUnityContainerAsync, Object>, IFactoryLifetimeManager)
UnityContainerAsyncExtensions.RegisterFactory(IUnityContainerAsync, Type, String, Func<IUnityContainerAsync, Type, String, Object>, IFactoryLifetimeManager)
UnityContainerAsyncExtensions.ResolveAsync<T>(IUnityContainerAsync, ResolverOverride[])
UnityContainerAsyncExtensions.ResolveAsync<T>(IUnityContainerAsync, String, ResolverOverride[])
UnityContainerAsyncExtensions.ResolveAsync(IUnityContainerAsync, Type, ResolverOverride[])
UnityContainerAsyncExtensions.IsRegistered(IUnityContainerAsync, Type)
UnityContainerAsyncExtensions.IsRegistered<T>(IUnityContainerAsync)
UnityContainerAsyncExtensions.IsRegistered<T>(IUnityContainerAsync, String)
InjectionMatching.Matches(Object, Type)
InjectionMatching.MatchesObject(Object, Type)
  • Improve this Doc
  • View Source
In This Article
Back to top Copyright © 2020 .NET Foundation and Contributors. All Rights Reserved