2013-01-17 11 views
0

我正在編寫一個自定義的HttpControllerSelector來處理API中的版本控制。我查看了github上的SDammann.WebApi.Versioning庫,當我運行它時,看起來路由字典正在填充每個請求。默認的人做了這個還是Sdammann圖書館的設計缺陷?ASP.NET Web API的DefaultHttpControllerSelector在每個請求上填充其路由字典嗎?

如果我有很多的控制器,將填充這個詞典對每個請求是性能打擊?有沒有另一種方法來做到這一點?

回答

2

控制器選擇器不應該需要填充路由數據。路由將填充路由數據。默認管道的工作方式如下所示:

路由運行 - 找到匹配的路由並用「控制器」,「動作」,其他參數填充路由數據 控制器選擇器運行 - 查看路由爲「控制器」路線參數數據,並使用該控制器名稱找出控制器類型使用

框架然後使用所選擇的控制器類型分派請求