Vraag Web API ActionFilter verander geretourneerde waarde


Ik heb een web API-toepassing die ik nodig heb om de retourwaarde van sommige API-eindpunten te verkrijgen via de OnActionExecuted-methode van ActionFilter

Ik gebruik een aangepast kenmerk om de eindpunten te identificeren die gegevens hebben die ik moet wijzigen, maar ik kan het werkelijke resultaatobject niet vinden vanuit de HttpActionExecutedContext.

Bedankt voor alle hulp!


21
2017-10-06 14:31


oorsprong


antwoorden:


U kunt de geretourneerde waarde ophalen via de Response.Content eigendom. Als je actie een object heeft geretourneerd waar je het naar kunt casten ObjectContent van waaruit u het werkelijke exemplaar van de geretourneerde waarde kunt ophalen:

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
        }
    }
}

41
2017-10-06 14:49