2010-05-20 72 views
2

我創建使用ASP.NET MVC(2)和Spring.NET的應用程序。ASP.NET MVC的通用控制器和Spring.NET

由於大多數我的控制器實現的只是實現類似的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

兩件事情:

  • 的controllerName參數實際上會通過的 '部門' 而不是 'DepartmentController'。你要麼需要處理此或在您的objects.xml調整名稱

  • 確保您回落到默認的實現如果上下文不返回控制器。在這種情況下,您應該回到基類實現。