Example #1
0
        /// <summary>
        /// 从ObjectContext中创建非单例controller,并初始化(注入ctx和controller所属的appType)
        /// </summary>
        /// <param name="controllerType"></param>
        /// <param name="ctx"></param>
        /// <returns></returns>
        public static ControllerBase FindController(Type controllerType, MvcContext ctx)
        {
            if (controllerType == null)
            {
                return(null);
            }

            ControllerBase controller = null;

            try {
                controller = ObjectContext.Create(controllerType) as ControllerBase;
            }
            catch (Exception ex) {
                throw new Exception("创建控制器失败,controller=" + controllerType.FullName, ex);
            }

            if (controller == null)
            {
                return(null);
            }

            ObjectContext.InterceptProperty(controller);
            controller.setContext(ctx);
            setControllerAppInfo(controllerType, controller);

            return(controller);
        }
        /// <summary>
        /// 从ObjectContext中创建非单例controller,并初始化(注入ctx和controller所属的appType)
        /// </summary>
        /// <param name="controllerType"></param>
        /// <param name="ctx"></param>
        /// <returns></returns>
        public static ControllerBase FindController(Type controllerType, MvcContext ctx)
        {
            if (controllerType == null)
            {
                return(null);
            }

            ControllerBase result = ObjectContext.CreateObject(controllerType) as ControllerBase;

            if (result == null)
            {
                return(null);
            }
            result.setContext(ctx);
            setControllerAppInfo(controllerType, result);

            //IControllerFactory factory;
            //factories.TryGetValue( controllerType.FullName, out factory );
            //if (factory == null) return null;

            //ControllerBase result = factory.New();
            //InjectController( result, ctx );

            return(result);
        }
 /// <summary>
 /// 根据容器配置,将依赖关系注入到已有对象中
 /// </summary>
 /// <param name="controller"></param>
 /// <param name="ctx"></param>
 public static void InjectController(ControllerBase controller, MvcContext ctx)
 {
     if (controller == null)
     {
         return;
     }
     ObjectContext.Inject(controller);
     controller.setContext(ctx);
     setControllerAppInfo(controller.GetType(), controller);
 }
Example #4
0
        /// <summary>
        /// 从ObjectContext中创建非单例controller,并初始化(注入ctx和controller所属的appType)
        /// </summary>
        /// <param name="controllerType"></param>
        /// <param name="ctx"></param>
        /// <returns></returns>
        public static ControllerBase FindController(Type controllerType, MvcContext ctx)
        {
            if (controllerType == null)
            {
                return(null);
            }

            ControllerBase controller = ObjectContext.CreateObject(controllerType) as ControllerBase;

            if (controller == null)
            {
                return(null);
            }
            ObjectContext.InterceptProperty(controller);
            controller.setContext(ctx);
            setControllerAppInfo(controllerType, controller);

            return(controller);
        }
Example #5
0
 /// <summary>
 /// 根据容器配置,将依赖关系注入到已有对象中
 /// </summary>
 /// <param name="controller"></param>
 /// <param name="ctx"></param>
 public static void InjectController( ControllerBase controller, MvcContext ctx )
 {
     if (controller == null) return;
     ObjectContext.Inject( controller );
     controller.setContext( ctx );
     setControllerAppInfo( controller.GetType(), controller );
 }