public IController CreateController(RequestContext requestContext, string controllerName) { IController result = null; string controllerType = controllerName + "Controller"; /// TODO.. config it Assembly assembly = Assembly.Load("Tinct.PlatformController"); if (assembly == null) { /// TODO.. config it throw new DllNotFoundException("Do not find Tinct.PlatformController assembly!"); } var type = assembly.GetType("Tinct.PlatformController."+controllerType, false); if (null != type) { result = (IController)Activator.CreateInstance(type); } else { /// TODO.. config it throw new ArgumentException("Don not find ControllerName"); } return result; }
public DispathMessage MapToControllerExcute(RouteData data) { RequestContext re = new RequestContext(); re.RouteData = data; string controllerName = data.Controller; IControllerFactory controllerFactory = ControllerBuilder.Current.GetControllerFactory(); IController controller = controllerFactory.CreateController(re, controllerName); controller.Execute(re); return re.RemainDispathUrlMessage; }
public void Execute(RequestContext requestContext) { ControllerContext context = new ControllerContext { RequestContext = requestContext, Controller = this }; string actionName = requestContext.RouteData.ActionName; this.ActionInvoker.InvokeAction(context, actionName); }