/// <summary>
 /// Add Scoped
 /// </summary>
 /// <param name="bag"></param>
 /// <param name="implementationFunc"></param>
 /// <typeparam name="TImplementation"></typeparam>
 /// <returns></returns>
 /// <exception cref="ArgumentNullException"></exception>
 public static R AddScoped <TImplementation>(this R bag, Func <TImplementation> implementationFunc)
 {
     bag.CheckNull(nameof(bag));
     implementationFunc.CheckNull(nameof(implementationFunc));
     bag.Register(DependencyProxyDescriptor.CreateForInstanceDelegate(implementationFunc, DependencyLifetimeType.Scoped));
     return(bag);
 }
예제 #2
0
 /// <summary>
 /// Add Transient
 /// </summary>
 /// <param name="bag"></param>
 /// <param name="implementationFunc"></param>
 /// <typeparam name="TService"></typeparam>
 /// <returns></returns>
 /// <exception cref="ArgumentNullException"></exception>
 public static R AddTransient <TService>(this R bag, Func <object> implementationFunc)
 {
     bag.CheckNull(nameof(bag));
     implementationFunc.CheckNull(nameof(implementationFunc));
     bag.Register(DependencyProxyDescriptor.CreateForServiceDelegate <TService>(implementationFunc, DependencyLifetimeType.Transient));
     return(bag);
 }
 /// <summary>
 /// Add Scoped
 /// </summary>
 /// <param name="bag"></param>
 /// <param name="implementationFunc"></param>
 /// <param name="implementationType"></param>
 /// <returns></returns>
 /// <exception cref="ArgumentNullException"></exception>
 public static R AddScoped(this R bag, Func <object> implementationFunc, Type implementationType)
 {
     bag.CheckNull(nameof(bag));
     implementationFunc.CheckNull(nameof(implementationFunc));
     bag.Register(DependencyProxyDescriptor.CreateForObjectDelegate(implementationFunc, implementationType, DependencyLifetimeType.Scoped));
     return(bag);
 }
 /// <summary>
 /// Add singleton
 /// </summary>
 /// <param name="bag"></param>
 /// <param name="implementationFunc"></param>
 /// <typeparam name="TService"></typeparam>
 /// <typeparam name="TImplementation"></typeparam>
 /// <returns></returns>
 /// <exception cref="ArgumentNullException"></exception>
 public static R AddSingleton <TService, TImplementation>(this R bag, Func <TImplementation> implementationFunc)
 {
     bag.CheckNull(nameof(bag));
     implementationFunc.CheckNull(nameof(implementationFunc));
     bag.Register(DependencyProxyDescriptor.CreateForServiceDelegate <TService, TImplementation>(implementationFunc, DependencyLifetimeType.Singleton));
     return(bag);
 }
 /// <summary>
 /// Add Scoped
 /// </summary>
 /// <param name="bag"></param>
 /// <param name="implementationFunc"></param>
 /// <typeparam name="TService"></typeparam>
 /// <typeparam name="TImplementation"></typeparam>
 /// <returns></returns>
 /// <exception cref="ArgumentNullException"></exception>
 public static R AddScoped <TService, TImplementation>(this R bag, Func <IDefinedResolver, TImplementation> implementationFunc)
 {
     bag.CheckNull(nameof(bag));
     implementationFunc.CheckNull(nameof(implementationFunc));
     bag.Register(DependencyProxyDescriptor.CreateForResolvedServiceDelegate <TService, TImplementation>(implementationFunc, DependencyLifetimeType.Scoped));
     return(bag);
 }
 /// <summary>
 /// Add Singleton
 /// </summary>
 /// <param name="bag"></param>
 /// <param name="implementationFunc"></param>
 /// <param name="implementationType"></param>
 /// <returns></returns>
 /// <exception cref="ArgumentNullException"></exception>
 public static R AddSingleton(this R bag, Func <IDefinedResolver, object> implementationFunc, Type implementationType)
 {
     bag.CheckNull(nameof(bag));
     implementationFunc.CheckNull(nameof(implementationFunc));
     bag.Register(DependencyProxyDescriptor.CreateForResolvedObjectDelegate(implementationFunc, implementationType, DependencyLifetimeType.Singleton));
     return(bag);
 }
 /// <summary>
 /// Add Singleton
 /// </summary>
 /// <param name="bag"></param>
 /// <param name="implementationFunc"></param>
 /// <typeparam name="TService"></typeparam>
 /// <returns></returns>
 /// <exception cref="ArgumentNullException"></exception>
 public static R AddSingletonService <TService>(this R bag, Func <IDefinedResolver, TService> implementationFunc)
 {
     bag.CheckNull(nameof(bag));
     implementationFunc.CheckNull(nameof(implementationFunc));
     bag.Register(DependencyProxyDescriptor.CreateForResolvedServiceDelegate <TService>(resolver => implementationFunc(resolver), DependencyLifetimeType.Singleton));
     return(bag);
 }
 /// <summary>
 /// Add Singleton
 /// </summary>
 /// <param name="bag"></param>
 /// <param name="implementationFunc"></param>
 /// <typeparam name="TImplementation"></typeparam>
 /// <returns></returns>
 /// <exception cref="ArgumentNullException"></exception>
 public static R AddSingleton <TImplementation>(this R bag, Func <IDefinedResolver, TImplementation> implementationFunc)
 {
     bag.CheckNull(nameof(bag));
     implementationFunc.CheckNull(nameof(implementationFunc));
     bag.Register(DependencyProxyDescriptor.CreateForResolvedInstanceDelegate(implementationFunc, DependencyLifetimeType.Singleton));
     return(bag);
 }
 /// <summary>
 /// Add Scoped
 /// </summary>
 /// <param name="bag"></param>
 /// <param name="serviceType"></param>
 /// <param name="implementationType"></param>
 /// <returns></returns>
 /// <exception cref="ArgumentNullException"></exception>
 public static R AddScoped(this R bag, Type serviceType, Type implementationType)
 {
     bag.CheckNull(nameof(bag));
     bag.Register(DependencyProxyDescriptor.CreateForType(serviceType, implementationType, DependencyLifetimeType.Scoped));
     return(bag);
 }
예제 #10
0
 /// <summary>
 /// Try add Transient
 /// </summary>
 /// <param name="bag"></param>
 /// <param name="implementationFunc"></param>
 /// <typeparam name="TImplementation"></typeparam>
 /// <exception cref="ArgumentNullException"></exception>
 public static void TryAddTransient <TImplementation>(this R bag, Func <IDefinedResolver, TImplementation> implementationFunc)
 {
     bag.CheckNull(nameof(bag));
     implementationFunc.CheckNull(nameof(implementationFunc));
     bag.TryRegister(DependencyProxyDescriptor.CreateForResolvedInstanceDelegate(implementationFunc, DependencyLifetimeType.Transient));
 }
 /// <summary>
 /// Try add Scoped
 /// </summary>
 /// <param name="bag"></param>
 /// <param name="implementation"></param>
 /// <typeparam name="TService"></typeparam>
 /// <exception cref="ArgumentNullException"></exception>
 public static void TryAddScopedService <TService>(this R bag, TService implementation)
 {
     bag.CheckNull(nameof(bag));
     bag.TryRegister(DependencyProxyDescriptor.CreateForService <TService>(implementation, DependencyLifetimeType.Scoped));
 }
 /// <summary>
 /// Add Scoped
 /// </summary>
 /// <param name="bag"></param>
 /// <param name="implementation"></param>
 /// <typeparam name="TService"></typeparam>
 /// <typeparam name="TImplementation"></typeparam>
 /// <returns></returns>
 /// <exception cref="ArgumentNullException"></exception>
 public static R AddScoped <TService, TImplementation>(this R bag, TImplementation implementation)
 {
     bag.CheckNull(nameof(bag));
     bag.Register(DependencyProxyDescriptor.CreateForService <TService, TImplementation>(implementation, DependencyLifetimeType.Scoped));
     return(bag);
 }
 /// <summary>
 /// Add singleton
 /// </summary>
 /// <param name="bag"></param>
 /// <param name="implementation"></param>
 /// <param name="implementationType"></param>
 /// <returns></returns>
 /// <exception cref="ArgumentNullException"></exception>
 public static R AddSingleton(this R bag, object implementation, Type implementationType)
 {
     bag.CheckNull(nameof(bag));
     bag.Register(DependencyProxyDescriptor.CreateForObject(implementation, implementationType, DependencyLifetimeType.Singleton));
     return(bag);
 }
 /// <summary>
 /// Add singleton
 /// </summary>
 /// <param name="bag"></param>
 /// <typeparam name="TImplementationSelf"></typeparam>
 /// <returns></returns>
 /// <exception cref="ArgumentNullException"></exception>
 public static R AddSingleton <TImplementationSelf>(this R bag)
 {
     bag.CheckNull(nameof(bag));
     bag.Register(DependencyProxyDescriptor.CreateForInstanceSelf <TImplementationSelf>(DependencyLifetimeType.Singleton));
     return(bag);
 }
예제 #15
0
 /// <summary>
 /// Try add Transient
 /// </summary>
 /// <param name="bag"></param>
 /// <param name="implementationFunc"></param>
 /// <typeparam name="TService"></typeparam>
 /// <exception cref="ArgumentNullException"></exception>
 public static void TryAddTransientService <TService>(this R bag, Func <IDefinedResolver, TService> implementationFunc)
 {
     bag.CheckNull(nameof(bag));
     implementationFunc.CheckNull(nameof(implementationFunc));
     bag.TryRegister(DependencyProxyDescriptor.CreateForResolvedServiceDelegate <TService>(resolver => implementationFunc(resolver), DependencyLifetimeType.Transient));
 }
예제 #16
0
 /// <summary>
 /// Try add Transient
 /// </summary>
 /// <param name="bag"></param>
 /// <param name="implementationFunc"></param>
 /// <param name="implementationType"></param>
 /// <exception cref="ArgumentNullException"></exception>
 public static void TryAddTransient(this R bag, Func <IDefinedResolver, object> implementationFunc, Type implementationType)
 {
     bag.CheckNull(nameof(bag));
     implementationFunc.CheckNull(nameof(implementationFunc));
     bag.TryRegister(DependencyProxyDescriptor.CreateForResolvedObjectDelegate(implementationFunc, implementationType, DependencyLifetimeType.Transient));
 }
 /// <summary>
 /// Try add Scoped
 /// </summary>
 /// <param name="bag"></param>
 /// <param name="implementationFunc"></param>
 /// <typeparam name="TService"></typeparam>
 /// <typeparam name="TImplementation"></typeparam>
 /// <exception cref="ArgumentNullException"></exception>
 public static void TryAddScoped <TService, TImplementation>(this R bag, Func <TImplementation> implementationFunc)
 {
     bag.CheckNull(nameof(bag));
     implementationFunc.CheckNull(nameof(implementationFunc));
     bag.TryRegister(DependencyProxyDescriptor.CreateForServiceDelegate <TService, TImplementation>(implementationFunc, DependencyLifetimeType.Scoped));
 }
 /// <summary>
 /// Try add Singleton
 /// </summary>
 /// <param name="bag"></param>
 /// <typeparam name="TService"></typeparam>
 /// <typeparam name="TImplementation"></typeparam>
 /// <exception cref="ArgumentNullException"></exception>
 public static void TryAddSingleton <TService, TImplementation>(this R bag)
 {
     bag.CheckNull(nameof(bag));
     bag.TryRegister(DependencyProxyDescriptor.CreateForService <TService, TImplementation>(DependencyLifetimeType.Singleton));
 }
 /// <summary>
 /// Try add Scoped
 /// </summary>
 /// <param name="bag"></param>
 /// <typeparam name="TImplementationSelf"></typeparam>
 /// <exception cref="ArgumentNullException"></exception>
 public static void TryAddScoped <TImplementationSelf>(this R bag)
 {
     bag.CheckNull(nameof(bag));
     bag.TryRegister(DependencyProxyDescriptor.CreateForInstanceSelf <TImplementationSelf>(DependencyLifetimeType.Scoped));
 }
 /// <summary>
 /// Try add Singleton
 /// </summary>
 /// <param name="bag"></param>
 /// <param name="implementationFunc"></param>
 /// <typeparam name="TImplementation"></typeparam>
 /// <exception cref="ArgumentNullException"></exception>
 public static void TryAddSingleton <TImplementation>(this R bag, Func <TImplementation> implementationFunc)
 {
     bag.CheckNull(nameof(bag));
     implementationFunc.CheckNull(nameof(implementationFunc));
     bag.TryRegister(DependencyProxyDescriptor.CreateForInstanceDelegate(implementationFunc, DependencyLifetimeType.Singleton));
 }
 /// <summary>
 /// Try add Scoped
 /// </summary>
 /// <param name="bag"></param>
 /// <param name="implementation"></param>
 /// <param name="implementationType"></param>
 /// <exception cref="ArgumentNullException"></exception>
 public static void TryAddScoped(this R bag, object implementation, Type implementationType)
 {
     bag.CheckNull(nameof(bag));
     bag.TryRegister(DependencyProxyDescriptor.CreateForObject(implementation, implementationType, DependencyLifetimeType.Scoped));
 }
예제 #22
0
 /// <summary>
 /// Add Transient
 /// </summary>
 /// <param name="bag"></param>
 /// <param name="implementation"></param>
 /// <typeparam name="TService"></typeparam>
 /// <returns></returns>
 /// <exception cref="ArgumentNullException"></exception>
 public static R AddTransientService <TService>(this R bag, TService implementation)
 {
     bag.CheckNull(nameof(bag));
     bag.Register(DependencyProxyDescriptor.CreateForService <TService>(implementation, DependencyLifetimeType.Transient));
     return(bag);
 }
 /// <summary>
 /// Try add Scoped
 /// </summary>
 /// <param name="bag"></param>
 /// <param name="implementationFunc"></param>
 /// <typeparam name="TService"></typeparam>
 /// <exception cref="ArgumentNullException"></exception>
 public static void TryAddScopedService <TService>(this R bag, Func <IDefinedResolver, object> implementationFunc)
 {
     bag.CheckNull(nameof(bag));
     implementationFunc.CheckNull(nameof(implementationFunc));
     bag.TryRegister(DependencyProxyDescriptor.CreateForResolvedServiceDelegate <TService>(implementationFunc, DependencyLifetimeType.Scoped));
 }
 /// <summary>
 /// Try add Singleton
 /// </summary>
 /// <param name="bag"></param>
 /// <param name="implementationFunc"></param>
 /// <param name="implementationType"></param>
 /// <exception cref="ArgumentNullException"></exception>
 public static void TryAddSingleton(this R bag, Func <object> implementationFunc, Type implementationType)
 {
     bag.CheckNull(nameof(bag));
     implementationFunc.CheckNull(nameof(implementationFunc));
     bag.TryRegister(DependencyProxyDescriptor.CreateForObjectDelegate(implementationFunc, implementationType, DependencyLifetimeType.Singleton));
 }
 /// <summary>
 /// Try add Singleton
 /// </summary>
 /// <param name="bag"></param>
 /// <param name="serviceType"></param>
 /// <param name="implementationType"></param>
 /// <returns></returns>
 /// <exception cref="ArgumentNullException"></exception>
 public static void TryAddSingleton(this R bag, Type serviceType, Type implementationType)
 {
     bag.CheckNull(nameof(bag));
     bag.TryRegister(DependencyProxyDescriptor.CreateForType(serviceType, implementationType, DependencyLifetimeType.Singleton));
 }
예제 #26
0
 /// <summary>
 /// Try add Transient
 /// </summary>
 /// <param name="bag"></param>
 /// <param name="implementation"></param>
 /// <typeparam name="TService"></typeparam>
 /// <typeparam name="TImplementation"></typeparam>
 /// <exception cref="ArgumentNullException"></exception>
 public static void TryAddTransient <TService, TImplementation>(this R bag, TImplementation implementation)
 {
     bag.CheckNull(nameof(bag));
     bag.TryRegister(DependencyProxyDescriptor.CreateForService <TService, TImplementation>(implementation, DependencyLifetimeType.Transient));
 }