Question

Je suis à la recherche d'un moyen de connecter les demandes et les réponses dans un service REST WCF. Le kit de démarrage WCF REST est livré avec une classe RequestInterceptor qui peut être utilisé pour intercepter les demandes, mais il ne semble pas être un équivalent pour les réponses. Idéalement, je voudrais être en mesure d'intercepter une réponse juste avant qu'il ne soit envoyé sur le fil, par exemple lorsque la méthode de service sous-jacent retourne. Toutes les suggestions?

Était-ce utile?

La solution

Notez que si vous voulez intercepter le message brut, et non pas les paramètres, vous pouvez injecter votre implémentation de IDispatchMessageInspector à la place du point d'extension IParameterInspector que Dani suggère.

Autres conseils

Il y a un Technic dans WCF: vous créez InstrumentedOperationAttribute qui dérive de l'attribut, IOperationBehavior.

À l'intérieur vous implémentez:

public void ApplyDispatchBehavior(

   OperationDescription operationDescription,

   DispatchOperation dispatchOperation

   )
{

  dispatchOperation.ParameterInspectors.Add(

     new ServerPI()

     );

}

et la classe ServerPI () est ce qui fait la magie: vous faites tout ce que vous avez besoin beforecall et AfterCall méthodes:

  class ServerPI : IParameterInspector
  {

    public void AfterCall(string operationName, object[] outputs, object returnValue, object correlationState)
    {
      Guid result = (Guid)correlationState;
      // ...
    }

    public object BeforeCall(string operationName, object[] inputs)
    {
      string parameter1 = inputs[0] as string;
      return Guid.NewGuid();
    }

  }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top