Stashbox by Peter Csajtai

<PackageReference Include="Stashbox" Version="3.5.0-preview-610" />

 FluentServiceConfigurator<TService, TImplementation, TConfigurator>

public class FluentServiceConfigurator<TService, TImplementation, TConfigurator> : FluentServiceConfigurator<TConfigurator>, IFluentCompositor<TImplementation, TConfigurator> where TConfigurator : FluentServiceConfigurator<TService, TImplementation, TConfigurator>
Represents the generic fluent service registration api.
public TConfigurator InjectMember<TResult>(Expression<Func<TImplementation, TResult>> expression, object dependencyName = null)

public TConfigurator WithFactory(Func<TImplementation> singleFactory, bool isCompiledLambda = false)

public TConfigurator WithFactory(Func<IDependencyResolver, TImplementation> containerFactory, bool isCompiledLambda = false)

public TConfigurator WithFinalizer(Action<TImplementation> finalizer)

public TConfigurator WithInitializer(Action<TImplementation, IDependencyResolver> initializer)