Stashbox by Peter Csajtai

<PackageReference Include="Stashbox" Version="4.1.0-preview-677" />

 StashboxContainer

Represents the Stashbox dependency injection container.

Stores the container context.

Constructs a StashboxContainer.

public object Activate(Type type, object[] arguments)

On the fly activates an object without registering it into the container. If you want to resolve a registered service use the Resolve instead.

public IDependencyResolver BeginScope(object name = null, bool attachToParent = false)

Begins a new scope.

public TTo BuildUp<TTo>(TTo instance)

Builds up an instance, the container will perform injections and extensions on it.

public bool CanResolve<TFrom>(object name = null)

Checks whether a type can be resolved by the container, or not.

public bool CanResolve(Type typeFrom, object name = null)

Checks whether a type can be resolved by the container, or not.

public IStashboxContainer ComposeBy(Type compositionRootType, object[] compositionRootArguments)

Composes services by calling the Compose method of the given type.

Composes services by calling the Compose method of the given root.

public void Configure(Action<ContainerConfigurator> config)

Configures the container.

Creates a child container.

public void Dispose()

Returns the details about the registrations.

Returns all registration mappings.

public object GetService(Type serviceType)

Calls the registered asynchronous initializers of all resolved objects.

public bool IsRegistered<TFrom>(object name = null)

Checks a type is registered in the container.

public bool IsRegistered(Type typeFrom, object name = null)

Checks a type is registered in the container.

public IDependencyResolver PutInstanceInScope(Type typeFrom, object instance, bool withoutDisposalTracking = false, object name = null)

Puts an instance into the scope which will be dropped when the scope is being disposed.

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.

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, string name = null)

Registers a service with a factory resolver.

public IStashboxContainer RegisterFunc<T1, TService>(Func<T1, IDependencyResolver, TService> factory, string name = null)

Registers a service with a factory resolver.

public IStashboxContainer RegisterFunc<T1, T2, TService>(Func<T1, T2, IDependencyResolver, TService> factory, string name = null)

Registers a service with a factory resolver.

public IStashboxContainer RegisterFunc<T1, T2, T3, TService>(Func<T1, T2, T3, IDependencyResolver, TService> factory, string 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, string 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.

public void RegisterResolver(IResolver resolver)

Registers an IResolver into the container.

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 types into the container.

public IStashboxContainer RegisterTypesAs(Type typeFrom, IEnumerable<Type> types, Func<Type, bool> selector = null, Action<RegistrationConfigurator> configurator = null)

Registers types into the container mapped to an interface 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.

public object Resolve(Type typeFrom, bool nullResultAllowed = false, object[] dependencyOverrides = null)

Resolves an instance from the container.

public object Resolve(Type typeFrom, object name, bool nullResultAllowed = false, object[] dependencyOverrides = null)

Resolves an instance from the container.

public IEnumerable<TKey> ResolveAll<TKey>(object[] dependencyOverrides = null)

Resolves all registered types of a service.

public IEnumerable<object> ResolveAll(Type typeFrom, object[] dependencyOverrides = null)

Resolves all registered types of a service.

public Delegate ResolveFactory(Type typeFrom, object name = null, bool nullResultAllowed = false, Type[] parameterTypes)

Returns a factory method which can be used to activate a type.

public void Validate()

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.