【发布时间】:2016-02-25 19:59:32
【问题描述】:
我有一个已经存在 MVC 控制器的 ASP.NET MVC 4.0 项目,但是我想使用 ApiController 类来实现一些新功能。
现有的控制器工厂返回一个IController 对象,ApiController 不继承自该对象。为ApiController 派生控制器创建另一个控制器工厂并使两个工厂共存的最佳方法是什么?
ControllerBuilder.Current.SetControllerFactory((IControllerFactory)new BuilderControllers.BuilderControllerFactory());
public class BuilderControllerFactory :IControllerFactory
{
public IController CreateController(RequestContext requestContext, string controllerName)
{
string controllerType = string.Format("BuilderControllers.{0}Controller", controllerName);
IController controller = null;
try
{
controller = Activator.CreateInstance(Type.GetType(controllerType)) as IController;
}
catch (System.Exception x)
{
//-- handle any failed requests --
}
return controller;
}
}
【问题讨论】:
-
我也有 MVC 4 解决方案,但我直接在解决方案中添加了 ApiController,它无需自定义控制器工厂即可工作。
标签: c# asp.net asp.net-mvc controller