L'obtention de la HttpActionExecutedContext valeurs de Résultat
J'ai créé un filtre qui hérite du Système.Web.Http.Les filtres.ActionFilterAttribute dans le asp.net l'api web et souhaitez accéder à certaines données à l'intérieur de la HttpActionExecutedContext objet de résultat.
À ce stade/quand est-ce que l'objet se remplissent? Comme je l'ai regardé en surchargeant la OnActionExecuted de la méthode et toujours null?
Des idées?
Edit:
par exemple ici, dans mon filtre personnalisé:
public override OnActionExecuted(HttpActionExecutedContext context)
{
//context.Result.Content is always null
base.OnActionExecuted(context);
}
Partager du code. Êtes-vous à l'aide de la version bêta de code source ou de libération? Il fonctionne pour moi.
Hi im en utilisant la version bêta. Qu'utilisez-vous?
Je suis en utilisant le même, en version bêta.
étrange. Quand vous dites que cela fonctionne pour vous, pouvez-vous préciser un peu plus, c'est à dire à l'aide de la même onactionexecuted événement à partir du système.web.http.les filtres etc.
Hi im en utilisant la version bêta. Qu'utilisez-vous?
Je suis en utilisant le même, en version bêta.
étrange. Quand vous dites que cela fonctionne pour vous, pouvez-vous préciser un peu plus, c'est à dire à l'aide de la même onactionexecuted événement à partir du système.web.http.les filtres etc.
OriginalL'auteur gdp | 2012-04-23
Vous devez vous connecter pour publier un commentaire.
Fini par utiliser ReadAsStringAsync sur le contenu du résultat.
J'ai essayé d'accéder à la propriété avant de la demande réelle a fini.
OriginalL'auteur gdp
Utilisez cette fonction pour obtenir le corps de la requête à l'api web
HttpActionExecutedContext
, mais ce qui est surSystem.Web.Mvc.ActionExecutedContext
?OriginalL'auteur virender
Alors que le montant de la réponse visée à ReadAsStringAsync, la réponse avait pas d'exemple. J'ai suivi les conseils de pib et dérivés un peu de travail exemple...
J'ai créé une classe unique appelé MessageInterceptor. Je n'ai rien de plus que de dériver à partir de ActionFilterAttribute et il a immédiatement commencé à intercepter webAPI les appels de méthode avant le contrôleur de l'obtenir, et après que le contrôleur fini. Voici mon dernier cours. Cet exemple utilise le XML Sérialiseur pour obtenir à la fois la demande et de la réponse dans une chaîne XML. Cet exemple trouve la demande et de la réponse que les objets peuplées, ce qui signifie la désérialisation a déjà eu lieu. La collecte des données à partir d'un peuplées modèle et la sérialisation dans une chaîne XML est une représentation de la requête et de réponse - pas le message de requête et de réponse envoyé par le serveur IIS.
Exemple de Code - MessageInterceptor
pib - pas sûr que je comprends de vos commentaires "voulez Asnyc/attendre la ReadAsStringAsync". Le OnActionExecuted se produit après que le contrôleur a tiré, et a fini. Il n'y a rien de bloquer, ou attendre pour la réponse complète est disponible...
OriginalL'auteur barrypicker
Utilisation ci-dessous pour lire la chaîne de Réponse:
OriginalL'auteur Kumar Lachhani