Stashbox by Peter Csajtai

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

 FluentServiceConfigurator<TConfigurator>

public class FluentServiceConfigurator<TConfigurator> : BaseFluentConfigurator<TConfigurator>, IFluentCompositor<TConfigurator> where TConfigurator : FluentServiceConfigurator<TConfigurator>
Represents the fluent service registration api.
public TConfigurator DefinesScope(object scopeName = null)

This registration is used as a logical scope for it's dependencies. Dependencies registered with the InNamedScope with the same name will be preferred during resolution.

public TConfigurator WithDynamicResolution()

Indicates that the service's resolution should be handled by a dynamic Resolve call on the current IDependencyResolver instead of a pre-built instantiation expression.

public TConfigurator WithFactory(Func<IDependencyResolver, object> factory, bool isCompiledLambda = false)

public TConfigurator WithFactory(Func<object> factory, bool isCompiledLambda = false)

public TConfigurator WithFactory<T1>(Func<T1, object> factory, bool isCompiledLambda = false)

public TConfigurator WithFactory<T1, T2>(Func<T1, T2, object> factory, bool isCompiledLambda = false)

public TConfigurator WithFactory<T1, T2, T3>(Func<T1, T2, T3, object> factory, bool isCompiledLambda = false)

public TConfigurator WithFactory<T1, T2, T3, T4>(Func<T1, T2, T3, T4, object> factory, bool isCompiledLambda = false)

public TConfigurator WithFactory<T1, T2, T3, T4, T5>(Func<T1, T2, T3, T4, T5, object> factory, bool isCompiledLambda = false)

public TConfigurator WithMetadata(object metadata)

Sets the metadata.

public TConfigurator WithName(object name)

Sets the name of the registration.