Stashbox by Peter Csajtai

<PackageReference Include="Stashbox" Version="3.1.0-preview-530" />

 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; using System.Reflection; 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<MemberInfo, bool> filter = null); TFluentConfigurator WithConstructorSelectionRule(Func<IEnumerable<ConstructorInfo>, IEnumerable<ConstructorInfo>> 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(); } }