Пользовательские обработчики маршрутов в ASP.Net WebAPI

Я могу успешно зарегистрировать пользовательский обработчик маршрута (производный от IRouteHandler) внутри global.asax.cs для маршрута Web API ala:

        routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "{client}/api/1.0/{controller}/{action}/{id}",
            defaults: new{id = UrlParameter.Optional}
        ).RouteHandler = new SingleActionAPIRouteHandler();

Однако, похоже, я не могу найти способ сделать это при попытке настроить хост в памяти для API для тестирования интеграции, когда я вызываю HttpConfiguration.Routes.MapRoute. Я не могу установить обработчик для возвращенного IHttpRoute.

Должен ли я делать это по-другому (например, с помощью пользовательского HttpControllerSelector)? Я бы хотел сделать это одинаково в обоих случаях.

Спасибо, Matt

РЕДАКТИРОВАТЬ:

Итак, в итоге я следовал советам, приведенным ниже, но просто переопределил класс HttpControllerDispatcher следующим образом:

public class CustomHttpControllerDispatcher : HttpControllerDispatcher
{
    public CustomHttpControllerDispatcher(HttpConfiguration configuration) : base(configuration)
    {
    }
    protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
    {
        // My stuff here

        return base.SendAsync(request, cancellationToken);
    }
}

Ответы на вопрос(1)

Ваш ответ на вопрос