/// <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> /// 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)); }