ASP.NET MVC通用控制器和Spring.NET

时间:2010-05-20 15:31:44

标签: asp.net-mvc spring.net

我正在使用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" />

任何人都可以选择并提供建议吗?

1 个答案:

答案 0 :(得分:0)

两件事:

  • controllerName参数实际上是'Department'而不是'DepartmentController'。您需要处理此问题或调整objects.xml中的名称

  • 如果上下文未返回控制器,请确保回退到默认实现。在这种情况下,您应该回到基类实现。