我正在使用ASP.NET MVC(2)和Spring.NET创建一个应用程序。
由于我的大多数Controller实现只是实现类似的CRUD操作,我想创建一个通用控制器,如下所述:
In asp.net mvc is it possible to make a generic controller?
但是,上面的例子没有考虑DI框架。
我在想的是创建它(警告:这是我需要帮助的大量代码):
public SpringGenericControllerFactory : DefaultControllerFactory {
public IController CreateController(RequestContext requestContext, string controllerName) {
// Determine the controller type to return
Type controllerType = Type.GetType("MyController").MakeGenericType(Type.GetType(controllerName));
// Return the controller
return Activator.CreateInstance(controllerType) as IController;
}
}
objects.xml中的条目如下所示:
<object id="controllerFactory" type="Application.Controllers.SpringGenericControllerFactory" />
<object id="DepartmentController" factory-method="CreateController" factory-object="controllerFactory" />
任何人都可以选择并提供建议吗?
答案 0 :(得分:0)
两件事:
controllerName参数实际上是'Department'而不是'DepartmentController'。您需要处理此问题或调整objects.xml中的名称
如果上下文未返回控制器,请确保回退到默认实现。在这种情况下,您应该回到基类实现。