2016-11-03 3 views
0

ASP.NET 웹 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가 호출되지 않습니다이다. 나는이 기능의 의도를 오해하고 있을지 모르지만 나는이 방법을 사용하는 Microsoft의 몇 가지 예를 많이 보았습니다.

무엇이 누락 되었습니까?

답변

0

필자가 config.Routes.MapHttpRoute()를 호출하지 않았기 때문에 필자가 그랬다. 나는 속성 라우팅을 사용하고 있었다. 일단 MapHttpRoute()를 사용하면 GetControllerName을 호출하기 시작한 것 같습니다.