#pragma warning disable RECS0096 // Type parameter is never used public void PerDependency <TService>( Func <IContainer, object> func, #pragma warning restore RECS0096 // Type parameter is never used IfRegistered ifRegistered = IfRegistered.AppendNew) { RegisterInternal(func, Reuse.Transient, ifRegistered); }
private void RegisterInternal <TService>( Func <IContainer, TService> func, IReuse reuse, IfRegistered ifRegistered = IfRegistered.AppendNew) { _dryContainer.RegisterDelegate( c => func.Invoke(c.Resolve <IContainer>()), reuse, null, MapIfAlreadyRegistered(ifRegistered)); }
private IfAlreadyRegistered MapIfAlreadyRegistered(IfRegistered ifRegistered) { switch (ifRegistered) { case IfRegistered.Keep: return(IfAlreadyRegistered.Keep); case IfRegistered.Replace: return(IfAlreadyRegistered.Replace); case IfRegistered.AppendNew: return(IfAlreadyRegistered.AppendNewImplementation); default: throw new ArgumentOutOfRangeException(nameof(ifRegistered), ifRegistered, null); } }
private void RegisterInternal <TService>(IReuse reuse, IfRegistered ifRegistered) { _dryContainer.Register <TService>(reuse, null, null, MapIfAlreadyRegistered(ifRegistered)); }
public void Singleton <TService>(Func <IContainer, TService> func, IfRegistered ifRegistered = IfRegistered.AppendNew) { RegisterInternal(func, Reuse.Singleton); }
public void Singleton <TService>(IfRegistered ifRegistered = IfRegistered.AppendNew) { RegisterInternal <TService>(Reuse.Singleton, ifRegistered); }
public void Singleton <TImplementation, TService>(IfRegistered ifRegistered = IfRegistered.AppendNew) where TImplementation : TService { RegisterInternal <TImplementation, TService>(Reuse.Singleton, ifRegistered); }
public void PerDependency(Type type, IfRegistered ifRegistered = IfRegistered.AppendNew) { RegisterInternal(type, Reuse.Transient, ifRegistered); }
public void PerDependency <TService>(Func <IContainer, TService> func, IfRegistered ifRegistered = IfRegistered.AppendNew) { RegisterInternal(func, Reuse.Transient, ifRegistered); }
public void PerDependency <TService>(IfRegistered ifRegistered = IfRegistered.AppendNew) { RegisterInternal <TService>(Reuse.Transient, ifRegistered); }
public void PerDependency <TImplementation, TService>(IfRegistered ifRegistered = IfRegistered.AppendNew) where TImplementation : TService { RegisterInternal <TImplementation, TService>(Reuse.Transient, ifRegistered); }
private void RegisterInternal(Type type, IReuse reuse, IfRegistered ifRegistered) { _dryContainer.Register(type, reuse, null, null, MapIfAlreadyRegistered(ifRegistered)); }
private void RegisterInternal <TImplementation, TService>(IReuse reuse, IfRegistered ifRegistered) where TImplementation : TService { _dryContainer.Register <TService, TImplementation>(reuse, null, null, MapIfAlreadyRegistered(ifRegistered)); }