示例#1
0
        //REGISTER
        //Register interface to class
        public void Register <T, TT>(IoCLifeTimeType ltt) where TT : class, T
        {
            var ltm = getLifeTimeManager(ltt);

            if (!Container.IsRegistered <T>())
            {
                Container.RegisterType <T, TT>(ltm).Configure <Interception>().SetInterceptorFor <T>(new InterfaceInterceptor());
            }
            //else  throw new Exception("Already registered.");
        }
示例#2
0
        //Register class
        public void Register <T>(IoCLifeTimeType ltt = IoCLifeTimeType.PerRequest) where T : class
        {
            var ltm = getLifeTimeManager(ltt);

            if (!Container.IsRegistered <T>())
            {
                //TODO : Interception fails
                Container.RegisterType <T, T>(ltm);
                //.Configure<Interception>()
                //.SetInterceptorFor<T>(new TransparentProxyInterceptor());
            }
            //else throw new Exception("bu tip zaten kayıtlı");
        }
示例#3
0
        //Lifetime manager wrapper for Unity
        private LifetimeManager getLifeTimeManager(IoCLifeTimeType ltt)
        {
            switch (ltt)
            {
            case IoCLifeTimeType.Singleton:
                return(new HierarchicalLifetimeManager());

            case IoCLifeTimeType.PerRequest:
                return(new TransientLifetimeManager());

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

            case IoCLifeTimeType.ContainerControllled:
                return(new ContainerControlledLifetimeManager());

            default:
                throw new Exception("lifetime tipi bulunamadı");
            }
        }