.NET Web Api - Обработчик сообщений - HttpRequestMessage.GetActionDescriptor () иногда имеет значение null - PullRequest
0 голосов
/ 27 марта 2019

У меня есть общий обработчик сообщений, в котором я получаю доступ к информации о действиях запроса через request.GetActionDescriptor (). В конечном итоге мне нужно знать пользовательские атрибуты действия.

public abstract class MessageHandler : DelegatingHandler
{
    protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
    {      
        var response = await base.SendAsync(request, cancellationToken);

        var action = (ReflectedHttpActionDescriptor)request.GetActionDescriptor();
        var attributes = action.MethodInfo.CustomAttributes;

        return response;
    }
}

Действие иногда является нулевым, когда запрос действительно выполнялся. Это происходит около 5% запросов. Он не подведет ни к какому конкретному действию и, кажется, распространяется на все.

Как я могу гарантировать, что этот рефлексивный подход всегда будет успешным? Или, если альтернативный подход может гарантировать здесь информацию об атрибутах действия, это также будет оценено. Спасибо.

...