Подтвердить что ты не робот

Web API ActionFilter изменить возвращаемое значение

У меня есть приложение веб-API, которое необходимо получить от возвращаемого значения некоторых конечных точек API с помощью метода ActionFilter OnActionExecuted

Я использую настраиваемый атрибут для определения конечных точек, у которых есть данные, которые мне нужно изменить, но я не могу найти фактический объект результата из HttpActionExecutedContext.

Спасибо за любую помощь!

4b9b3361

Ответ 1

Вы можете получить возвращаемое значение через свойство Response.Content. Если ваше действие вернуло объект, вы можете направить его на ObjectContent, откуда вы можете получить фактический экземпляр возвращаемого значения:

public class MyFilterAttribute : ActionFilterAttribute
{
    public override void OnActionExecuted(HttpActionExecutedContext context)
    {
        var objectContent = context.Response.Content as ObjectContent;
        if (objectContent != null)
        {
            var type = objectContent.ObjectType; //type of the returned object
            var value = objectContent.Value; //holding the returned value
        }
    }
}