Пример #1
0
        /// <summary>
        /// 获取生命周期
        /// </summary>
        /// <param name="lifetimeManagerType"></param>
        /// <returns></returns>
        public static LifetimeManager GetLifetimeManager(LifetimeManagerType lifetimeManagerType)
        {
            Current.RegisterType <IEventBus, EventBus>(new TransientLifetimeManager());
            //Current.RegisterType<IEventBus, EventBus>(new PerHttpLifetimeManager());
            Type type;

            if (!LifetimeManager.TryGetValue(lifetimeManagerType, out type))
            {
                return(new TransientLifetimeManager());
            }
            return((LifetimeManager)Activator.CreateInstance(type));

            //switch (lifetimeManagerType)
            //{
            //    case LifetimeManagerType.Transient:
            //        return new TransientLifetimeManager();
            //    case LifetimeManagerType.ContainerControlled:
            //        return new ContainerControlledLifetimeManager();
            //    case LifetimeManagerType.Hierarchica:
            //        return new HierarchicalLifetimeManager();
            //    case LifetimeManagerType.Externally:
            //        return new ExternallyControlledLifetimeManager();
            //    case LifetimeManagerType.PerThread:
            //        return new PerThreadLifetimeManager();
            //    case LifetimeManagerType.PerResolve:
            //        return new PerResolveLifetimeManager();
            //    default:
            //        return new PerResolveLifetimeManager();
            //}
        }
Пример #2
0
        /// <summary>
        /// 获取生命周期
        /// </summary>
        /// <param name="lifetimeManagerType"></param>
        /// <returns></returns>
        private static LifetimeManager GetLifetimeManager(LifetimeManagerType lifetimeManagerType)
        {
            switch (lifetimeManagerType)
            {
            case LifetimeManagerType.Transient:
                return(new TransientLifetimeManager());

            case LifetimeManagerType.ContainerControlled:
                return(new ContainerControlledLifetimeManager());

            case LifetimeManagerType.Hierarchica:
                return(new HierarchicalLifetimeManager());

            case LifetimeManagerType.Externally:
                return(new ExternallyControlledLifetimeManager());

            case LifetimeManagerType.PerThread:
                return(new PerThreadLifetimeManager());

            case LifetimeManagerType.PerResolve:
                return(new PerResolveLifetimeManager());

            default:
                return(new TransientLifetimeManager());
            }
        }
Пример #3
0
 public static void SetLifetimeManagerDict <T>(LifetimeManagerType lifetimeManagerType)
 {
     LifetimeManager.AddOrUpdate(lifetimeManagerType, key => typeof(T), (key, value) => typeof(T));
 }