private static Lifestyle ChooseLife(IoCInfraLifeCycle life) { switch (life) { case IoCInfraLifeCycle.New: return(Lifestyle.Transient); case IoCInfraLifeCycle.Singleton: return(Lifestyle.Singleton); default: return(Lifestyle.Scoped); } }
/// <summary> /// Register a interface and implementation in container /// </summary> /// <param name="T1">Interface</param> /// <param name="T2">implementation</param> /// <param name="life">Lifecycle of the instance</param> /// <param name="args">Parameters of contructor</param> public static void Register(Type T1, Type T2, IoCInfraLifeCycle life = IoCInfraLifeCycle.Singleton, params object[] args) { SimpleContainer.Register(T1, () => Activator.CreateInstance(T2, args), ChooseLife(life)); }
/// <summary> /// Register a interface and implementation in container /// </summary> /// <typeparam name="T1">Interface</typeparam> /// <typeparam name="T2">Implementation</typeparam> /// <param name="life">Lifecycle of the instance</param> public static void Register <T1, T2>(IoCInfraLifeCycle life = IoCInfraLifeCycle.Singleton) where T1 : class where T2 : class { SimpleContainer.Register(typeof(T1), typeof(T2), ChooseLife(life)); }
/// <summary> /// Register a interface and implementation in container /// </summary> /// <param name="T1">Interface</param> /// <param name="T2">Implementation</param> /// <param name="life">Lifecycle of the instance</param> public static void Register(Type T1, Type T2, IoCInfraLifeCycle life = IoCInfraLifeCycle.Singleton) { SimpleContainer.Register(T1, T2, ChooseLife(life)); }
/// <summary> /// Register a interface and implementation in container /// </summary> /// <typeparam name="T1">Interface</typeparam> /// <typeparam name="T2">Implementation</typeparam> /// <param name="args">Parameters of contructor</param> /// <param name="life">Lifecycle of the instance</param> public static void Register <T1, T2>(IoCInfraLifeCycle life = IoCInfraLifeCycle.Singleton, params object[] args) where T1 : class where T2 : class { SimpleContainer.Register <T1>(() => (T1)Activator.CreateInstance(typeof(T2), args), ChooseLife(life)); }