目前我發現在每個控制器上都有一個單獨的public static void RegisterRoutes(RouteCollection routes)
方法是最方便的。然後在Global.asax的RegisterRoutes
中,我調用所有這些方法。如何使用某種IoC(?)爲ASP.NET MVC控制器自動註冊路由?
當然,這很快失去控制。每當我添加一個新的控制器時,我都必須使用樣板MyNewController.RegisterRoutes(routes)
調用更新RegisterRoutes
。
我的第一直覺就是讓所有我的控制器,從一些抽象ControllerBase
它已經定義了RegisterRoutes
方法獲得,然後使用某種反射的找到所有ControllerBase
-subclasses並調用它們的靜態方法。
我的第二個直覺是意識到這可能是一個解決的問題,尤其是因爲它聽起來像這個IoC類型的東西,我最近纔開始學習。所以在一些谷歌搜索沒有真正把任何東西(可能是由於關鍵字不好),我想我會問StackOverflow。