StashboxContainer
public sealed class StashboxContainer : IStashboxContainer, IDependencyRegistrator, IDependencyResolver, IServiceProvider, IAsyncDisposable, IDisposable, IDependencyReMapper, IDependencyCollectionRegistrator, IDecoratorRegistrator, IFuncRegistrator
Represents the Stashbox dependency injection container.
The container context.
Constructs a StashboxContainer.
Activates an object without registering it into the container. If you want to resolve a
registered service use the Resolve method instead.
Creates a new scope.
Builds up an existing instance. This means the container performs member and method injections on it without registering it into the container.
Checks whether a type can be resolved by the container, or not.
Checks whether a type can be resolved by the container, or not.
Composes services by calling the Compose method of the given root.
Composes services by calling the Compose method of the given root.
Configures the container.
Creates a child container.
Returns the details about the registrations.
Returns all registration mappings.
Calls the registered asynchronous initializers of all resolved objects.
Checks whether a type is registered in the container.
Checks whether a type is registered in the container.
public void PutInstanceInScope(Type typeFrom, object instance, bool withoutDisposalTracking = false, object name = null)
Puts an instance into the scope. The instance will be disposed along with the scope disposal.
public IStashboxContainer Register<TFrom, TTo>(Action<RegistrationConfigurator<TFrom, TTo>> configurator = null) where TTo : TFrom
Registers a type into the container with custom configuration.
public IStashboxContainer Register<TFrom>(Type typeTo, Action<RegistrationConfigurator<TFrom, TFrom>> configurator = null)
Registers a type into the container with custom configuration.
public IStashboxContainer Register(Type typeFrom, Type typeTo, Action<RegistrationConfigurator> configurator = null)
Registers a type into the container with custom configuration.
public IStashboxContainer Register<TTo>(Action<RegistrationConfigurator<TTo, TTo>> configurator = null)
Registers a type into the container with custom configuration.
public IStashboxContainer Register(Type typeTo, Action<RegistrationConfigurator> configurator = null)
Registers a type into the container with custom configuration.
public IStashboxContainer RegisterDecorator(Type typeFrom, Type typeTo, Action<DecoratorConfigurator> configurator = null)
Registers a decorator type into the container with custom configuration.
public IStashboxContainer RegisterDecorator<TFrom, TTo>(Action<DecoratorConfigurator<TFrom, TTo>> configurator = null) where TTo : TFrom
Registers a decorator type into the container with custom configuration.
public IStashboxContainer RegisterDecorator(Type typeTo, Action<DecoratorConfigurator> configurator = null)
Registers a decorator type into the container with custom configuration.
This function configures the registration with the AsImplementedTypes option.
public IStashboxContainer RegisterDecorator<TTo>(Action<DecoratorConfigurator<TTo, TTo>> configurator = null)
Registers a decorator type into the container with custom configuration.
This function configures the registration with the AsImplementedTypes option.
public IStashboxContainer RegisterDecorator<TFrom>(Type typeTo, Action<DecoratorConfigurator<TFrom, TFrom>> configurator = null)
Registers a decorator type into the container with custom configuration.
public IStashboxContainer RegisterFunc<TService>(Func<IDependencyResolver, TService> factory, object name = null)
Registers a service with a factory resolver.
public IStashboxContainer RegisterFunc<T1, TService>(Func<T1, IDependencyResolver, TService> factory, object name = null)
Registers a service with a factory resolver.
public IStashboxContainer RegisterFunc<T1, T2, TService>(Func<T1, T2, IDependencyResolver, TService> factory, object name = null)
Registers a service with a factory resolver.
public IStashboxContainer RegisterFunc<T1, T2, T3, TService>(Func<T1, T2, T3, IDependencyResolver, TService> factory, object name = null)
Registers a service with a factory resolver.
public IStashboxContainer RegisterFunc<T1, T2, T3, T4, TService>(Func<T1, T2, T3, T4, IDependencyResolver, TService> factory, object name = null)
Registers a service with a factory resolver.
public IStashboxContainer RegisterInstance<TInstance>(TInstance instance, object name = null, bool withoutDisposalTracking = false, Action<TInstance> finalizerDelegate = null)
Registers an already constructed instance into the container.
public IStashboxContainer RegisterInstance(object instance, Type serviceType, object name = null, bool withoutDisposalTracking = false)
Registers an already constructed instance into the container.
Registers an IResolver.
public IStashboxContainer RegisterTypes(IEnumerable<Type> types, Func<Type, bool> selector = null, Func<Type, Type, bool> serviceTypeSelector = null, bool registerSelf = true, Action<RegistrationConfigurator> configurator = null)
Registers a collection of types into the container.
public IStashboxContainer RegisterTypesAs(Type typeFrom, IEnumerable<Type> types, Func<Type, bool> selector = null, Action<RegistrationConfigurator> configurator = null)
Registers a collection of types mapped to a service type.
public IStashboxContainer ReMap<TFrom, TTo>(Action<RegistrationConfigurator<TFrom, TTo>> configurator = null) where TTo : TFrom
Replaces an existing registration mapping.
public IStashboxContainer ReMap<TFrom>(Type typeTo, Action<RegistrationConfigurator<TFrom, TFrom>> configurator = null)
Replaces an existing registration mapping.
public IStashboxContainer ReMap(Type typeFrom, Type typeTo, Action<RegistrationConfigurator> configurator = null)
Replaces an existing registration mapping.
public IStashboxContainer ReMap<TTo>(Action<RegistrationConfigurator<TTo, TTo>> configurator = null)
Replaces an existing registration mapping.
public IStashboxContainer ReMapDecorator(Type typeFrom, Type typeTo, Action<DecoratorConfigurator> configurator = null)
Replaces an existing decorator mapping.
public IStashboxContainer ReMapDecorator<TFrom, TTo>(Action<DecoratorConfigurator<TFrom, TTo>> configurator = null) where TTo : TFrom
Replaces an existing decorator mapping.
public IStashboxContainer ReMapDecorator<TFrom>(Type typeTo, Action<DecoratorConfigurator<TFrom, TFrom>> configurator = null)
Replaces an existing decorator mapping.
Resolves an instance from the container.
public object Resolve(Type typeFrom, object name, bool nullResultAllowed, object[] dependencyOverrides = null)
Resolves an instance from the container.
Resolves an instance from the container.
Resolves an instance from the container with dependency overrides.
Resolves a named instance from the container.
Resolves a named instance from the container with dependency overrides.
Resolves all registered implementations of a service.
Resolves all registered implementations of a service with dependency overrides.
Resolves all registered implementations of a service.
Resolves all registered implementations of a service with dependency overrides.
Returns a factory delegate that can be used to activate the service.
Returns a factory delegate that can be used to activate the service or returns default if the type is not resolvable.
Resolves an instance from the container or returns default if the type is not resolvable.
Resolves an instance from the container with dependency overrides or returns default if the type is not resolvable.
Resolves a named instance from the container or returns default if the type is not resolvable.
Resolves an instance from the container with dependency overrides or returns default if the type is not resolvable.
Validates the current state of the container.
public IStashboxContainer WireUp<TInstance>(TInstance instance, object name = null, bool withoutDisposalTracking = false, Action<TInstance> finalizerDelegate = null)
Registers an already constructed instance, but the container will perform injections and extensions on it.
public IStashboxContainer WireUp(object instance, Type serviceType, object name = null, bool withoutDisposalTracking = false)
Registers an already constructed instance, but the container will perform injections and extensions on it.