2016-11-03 17 views
0

ASP.NET Web APIでバージョン管理しようとしています。 DefaultHttpControllerSelectorから派生した単純なコントローラセレクタを作成しました。私WebApiConfig.Registerで派生したDefaultHttpControllerSelectorインプリメンテーションでGetControllerNameが呼び出されない

public class MyHttpControllerSelector : DefaultHttpControllerSelector 
{ 
    public MyHttpControllerSelector(HttpConfiguration config) : base(config) { } 

    public override string GetControllerName(HttpRequestMessage request) 
    { 
     return "SomeControllerName"; 
    } 
} 

config.MapHttpAttributeRoutes(); 

config.Services.Replace(typeof(IHttpControllerSelector), new MyHttpControllerSelector(config)); 

私の問題ははgetControllerNameが呼び出されることはありませんです。私はこの機能の意図を誤解しているかもしれませんが、私は多くの例を見てきました。

私には何が欠けていますか?

答えて

0

私の場合は、config.Routes.MapHttpRoute()を呼び出さなかったためです。私は属性ルーティングを使用していました。 MapHttpRoute()を使用すると、GetControllerNameを呼び出すように見えました。

関連する問題