public void Test_CanLoad_AndResolve_BindToType(int nTestThreads) { StandardDependencyResolver resolver = new StandardDependencyResolver(); List <DependencyRegistration> dependencies = new List <DependencyRegistration>(); dependencies.Add(DependencyRegistration.BindToType(typeof(IAsSingletonSampleDependency), typeof(AsSingletonSampleDependencyImpl), DependencyScope.Singleton)); dependencies.Add(DependencyRegistration.BindToType(typeof(IAsThreadSingletonSampleDependency), typeof(AsThreadSingletonSampleDependencyImpl), DependencyScope.Thread)); dependencies.Add(DependencyRegistration.BindToType(typeof(IAsTransientSampleDependency), typeof(AsTransientSampleDependencyImpl), DependencyScope.Transient)); resolver.Load(dependencies); Assert_DependenciesCanBeResolved(resolver); Assert_DependenciesCorrectlyResolved(nTestThreads, resolver); }
public IDependencyBindingScopeSetup BindToType(Type target, Type implementationType) { if (target == null) { throw new ArgumentNullException(nameof(target)); } if (implementationType == null) { throw new ArgumentNullException(nameof(implementationType)); } if (HasBindingFor(target)) { throw new InvalidOperationException($"Target type {target.Name} is already bound."); } DependencyRegistration reg = DependencyRegistration.BindToType(target, asImplementation: implementationType, scope: DependencyScope.Transient); mDependencyRegistrations.Add(reg); return(new StandardDependencyBindingScopeSetup(reg)); }
public IDependencySetup BindToType(Type target, Type implementationType, DependencyScope scope) { if (target == null) { throw new ArgumentNullException(nameof(target)); } if (implementationType == null) { throw new ArgumentNullException(nameof(implementationType)); } if (HasBindingFor(target)) { throw new InvalidOperationException($"Target type {target.Name} is already bound."); } mDependencyRegistrations.Add(DependencyRegistration.BindToType(target, asImplementation: implementationType, scope: scope)); return(this); }
public IDependencySetup BindToType <T, TImplementation> (DependencyScope scope) where TImplementation : T { if (HasBindingFor <T>()) { throw new InvalidOperationException($"Target type {typeof( T ).Name} is already bound."); } mDependencyRegistrations.Add(DependencyRegistration.BindToType(typeof(T), asImplementation: typeof(TImplementation), scope: scope)); return(this); }
public IDependencyBindingScopeSetup BindToType <T, TImplementation> () where TImplementation : T { if (HasBindingFor <T>()) { throw new InvalidOperationException($"Target type {typeof( T ).Name} is already bound."); } DependencyRegistration reg = DependencyRegistration.BindToType(typeof(T), asImplementation: typeof(TImplementation), scope: DependencyScope.Transient); mDependencyRegistrations.Add(reg); return(new StandardDependencyBindingScopeSetup(reg)); }