Stashbox by Peter Csajtai

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

 FluentServiceConfigurator<TConfigurator>

public class FluentServiceConfigurator<TConfigurator> : BaseFluentConfigurator<TConfigurator> where TConfigurator : FluentServiceConfigurator<TConfigurator>
Represents the fluent service registration api.
public TConfigurator AsImplementedTypes()

Registers the given service by all of it's implemented types.

public TConfigurator AsServiceAlso<TAdditionalService>()

Binds the currently configured registration to an additional service type.

public TConfigurator AsServiceAlso(Type serviceType)

Binds the currently configured registration to an additional service type.

public TConfigurator DefinesScope(object scopeName = null)

It means this registration would be used as a logical scope for it's dependencies, the dependencies registered with the InNamedScope and with the same name as it's param will be preferred during resolution.

public TConfigurator WithName(object name)

Sets the name of the registration.