Stashbox by Peter Csajtai

<PackageReference Include="Stashbox" Version="5.2.0-preview-737" />

 IFluentCompositor<TImplementation, TConfigurator>

interface IFluentCompositor<TImplementation, TConfigurator>
using System; using System.Linq.Expressions; using System.Runtime.CompilerServices; using System.Threading; using System.Threading.Tasks; namespace Stashbox.Registration.Fluent { [System.Runtime.CompilerServices.NullableContext(1)] internal interface IFluentCompositor<[System.Runtime.CompilerServices.Nullable(2)] TImplementation, [System.Runtime.CompilerServices.Nullable(2)] out TConfigurator> { TConfigurator WithDependencyBinding<[System.Runtime.CompilerServices.Nullable(2)] TResult>(Expression<Func<TImplementation, TResult>> expression, [System.Runtime.CompilerServices.Nullable(2)] object dependencyName = null); TConfigurator WithFinalizer(Action<TImplementation> finalizer); TConfigurator WithInitializer(Action<TImplementation, IDependencyResolver> initializer); TConfigurator WithAsyncInitializer(Func<TImplementation, IDependencyResolver, CancellationToken, Task> initializer); TConfigurator WithFactory(Func<TImplementation> factory, bool isCompiledLambda = false); TConfigurator WithFactory(Func<IDependencyResolver, TImplementation> factory, bool isCompiledLambda = false); TConfigurator WithFactory<[System.Runtime.CompilerServices.Nullable(2)] T1>(Func<T1, TImplementation> factory, bool isCompiledLambda = false); TConfigurator WithFactory<[System.Runtime.CompilerServices.Nullable(2)] T1, [System.Runtime.CompilerServices.Nullable(2)] T2>(Func<T1, T2, TImplementation> factory, bool isCompiledLambda = false); [System.Runtime.CompilerServices.NullableContext(2)] [return: System.Runtime.CompilerServices.Nullable(1)] TConfigurator WithFactory<T1, T2, T3>([System.Runtime.CompilerServices.Nullable(1)] Func<T1, T2, T3, TImplementation> factory, bool isCompiledLambda = false); [System.Runtime.CompilerServices.NullableContext(2)] [return: System.Runtime.CompilerServices.Nullable(1)] TConfigurator WithFactory<T1, T2, T3, T4>([System.Runtime.CompilerServices.Nullable(1)] Func<T1, T2, T3, T4, TImplementation> factory, bool isCompiledLambda = false); [System.Runtime.CompilerServices.NullableContext(2)] [return: System.Runtime.CompilerServices.Nullable(1)] TConfigurator WithFactory<T1, T2, T3, T4, T5>([System.Runtime.CompilerServices.Nullable(1)] Func<T1, T2, T3, T4, T5, TImplementation> factory, bool isCompiledLambda = false); } }