2014-07-25 2 views
1

많은 Web API 컨트롤러와 많은 글로벌 위임 처리기가 있습니다. 하지만 1 컨트롤러의 경우 이러한 핸들러 중 일부 (또는 일부)를 호출하지 못하게해야합니다. 처리기가 버블 링 구성표에서 작동하는 경우 버블 링을 방지하고 내 컨트롤러에 대해 사용자 지정 DoNotBubbleHandler를 지정하거나이 컨트롤러에 사용할 처리기를 지정하십시오.위임 처리자가 특정 웹 API 컨트롤러를 호출하지 못하도록 방지

답변

2

경로 별 정의를 시도해 볼 수 있습니다 핸들러는 here이고, Per-Route Message Handlers입니다. 사람이 전 세계적으로 등록보다

기본적으로, 특정 컨트롤러에 대해 당신은 핸들러의 다른 세트를 지정할 수 있습니다

// Custom handlers for the special controller. 
DelegatingHandler[] handlers = new DelegatingHandler[] { 
    new MessageHandler3() 
}; 

// Create a message handler chain with an end-point. 
var routeHandlers = HttpClientFactory.CreatePipeline(new HttpControllerDispatcher(config), handlers); 

//This should be only the controller you want to use a different delegating handler 
config.Routes.MapHttpRoute(
    name: "Route2", 
    routeTemplate: "api2/{controller}/{id}", 
    defaults: new { id = RouteParameter.Optional }, 
    constraints: null, 
    handler: routeHandlers 
); 

//global message handler 
config.MessageHandlers.Add(new MessageHandler1()); 
관련 문제