Stashbox by Peter Csajtai

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

 IFluentCompositor<TImplementation, TConfigurator>

interface IFluentCompositor<TImplementation, TConfigurator>
using System; using System.Linq.Expressions; namespace Stashbox.Registration.Fluent { internal interface IFluentCompositor<TImplementation, TConfigurator> { TConfigurator InjectMember<TResult>(Expression<Func<TImplementation, TResult>> expression, object dependencyName = null); TConfigurator WithFinalizer(Action<TImplementation> finalizer); TConfigurator WithInitializer(Action<TImplementation, IDependencyResolver> initializer); TConfigurator WithFactory(Func<TImplementation> singleFactory, bool isCompiledLambda = false); TConfigurator WithFactory(Func<IDependencyResolver, TImplementation> containerFactory, bool isCompiledLambda = false); } }