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