Stashbox by Peter Csajtai

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

 IBaseFluentConfigurator<TFluentConfigurator>

public interface IBaseFluentConfigurator<TFluentConfigurator> where TFluentConfigurator : IBaseFluentConfigurator<TFluentConfigurator>
Represents a fluent registration configurator base.
using Stashbox.Configuration; using Stashbox.Entity; using System; using System.Collections.Generic; namespace Stashbox.Registration.Fluent { public interface IBaseFluentConfigurator<out TFluentConfigurator> where TFluentConfigurator : IBaseFluentConfigurator<TFluentConfigurator> { TFluentConfigurator WithInjectionParameters(params InjectionParameter[] injectionParameters); TFluentConfigurator WithInjectionParameter(string name, object value); TFluentConfigurator WithAutoMemberInjection(Rules.AutoMemberInjectionRules rule = Rules.AutoMemberInjectionRules.PropertiesWithPublicSetter, Func<TypeInformation, bool> filter = null); TFluentConfigurator WithConstructorSelectionRule(Func<IEnumerable<ConstructorInformation>, IEnumerable<ConstructorInformation>> rule); TFluentConfigurator WithConstructorByArgumentTypes(params Type[] argumentTypes); TFluentConfigurator WithConstructorByArguments(params object[] arguments); TFluentConfigurator InjectMember(string memberName, object dependencyName = null); TFluentConfigurator WithDependencyBinding(Type dependencyType, object dependencyName); TFluentConfigurator WithDependencyBinding(string parameterName, object dependencyName); TFluentConfigurator WithoutDisposalTracking(); TFluentConfigurator ReplaceExisting(); TFluentConfigurator WithoutFactoryCache(); } }