/// <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 <IDefinedResolver, TImplementation> implementationFunc) { bag.CheckNull(nameof(bag)); implementationFunc.CheckNull(nameof(implementationFunc)); bag.Register(DependencyProxyDescriptor.CreateForResolvedInstanceDelegate(implementationFunc, DependencyLifetimeType.Scoped)); return(bag); }
/// <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 <IDefinedResolver, TImplementation> implementationFunc) { bag.CheckNull(nameof(bag)); implementationFunc.CheckNull(nameof(implementationFunc)); bag.TryRegister(DependencyProxyDescriptor.CreateForResolvedInstanceDelegate(implementationFunc, DependencyLifetimeType.Singleton)); }