public class CustomControllerFactory : IControllerFactory
{
public IController CreateController(System.Web.Routing.RequestContext requestContext, string controllerName)
if (string.IsNullOrEmpty(controllerName))
throw new ArgumentNullException("Controller name can't be empty");
String controllerType = String.Concat("MyMvcApplication.CustomController.", controllerName);
IController controller = Activator.CreateInstance(Type.GetType(controllerType)) as IController;
return controller;
}
public void ReleaseController(IController controller)
IDisposable disposableController = controller as IDisposable;
if (disposableController != null)
disposableController.Dispose();
protected void Application_Start()
RegisterRoutes(RouteTable.Routes);
ControllerBuilder.Current.SetControllerFactory(typeof(CustomControllerFactory));