Stashbox by Peter Csajtai

<PackageReference Include="Stashbox" Version="4.1.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 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 WithName(object name)

Sets the name of the registration.