IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Communication Foundation .NET Discussion :

Déserialiser un flux SOAP WCF (récupérer un paramètre d'appel)


Sujet :

Windows Communication Foundation .NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    837
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2003
    Messages : 837
    Points : 377
    Points
    377
    Par défaut Déserialiser un flux SOAP WCF (récupérer un paramètre d'appel)
    Bonjour à tous,

    Je suis actuellement en train de mettre un systeme de logs un peu particuliers en place sur mon webservice. Pour cela, j'utilise l'interface IDispatchMessageInspector qui me permet de chopper l'appel à l'entrée dans le webservice et au moment de sa sortie.
    Ce choix me permet de tout tracer en un coup.
    Mon webservice propose beaucoup d'appels qui ont tous un même paramètre en premier : le contexte.

    J'aimerai dans la méthode AfterReceiveRequest pouvoir déserialiser cet objet pour en connaitre ses valeurs.
    J'ai essayé trois million de choses mais je n'arrive jamais au resultat escompté.

    Auriez vous une idée svp ?
    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par zax-tfh Voir le message
    J'aimerai dans la méthode AfterReceiveRequest pouvoir déserialiser cet objet pour en connaitre ses valeurs.
    Simple, il suffit d'utiliser la méthode GetBody<T> (où T le type de l'objet attendu en retour) de ton objet request passé en paramètre à ta méthode.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    837
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2003
    Messages : 837
    Points : 377
    Points
    377
    Par défaut
    Salut,

    Merci pour ta réponse. Alors j'ai bien essayé de l'utiliser comme tu l'indiques mais ça me génère une erreur.

    Donc dans mon webservice, j'ai une méthode sans aucun paramètre et plein d'autres méthodes qui ont toutes plusieurs paramètre dont un en commun :
    un contexte de type ContextInfos.

    Imaginons que mon client appelle en premier la méthode sans parametre puis ensuite fasse plusieurs appels avec ce fameux contextinfos.

    Voici ce que j'ai fait dans la méthode AfterReceiveRequest du webservice :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim ctx As ContextInfos = request.CreateBufferedCopy(Integer.MaxValue).CreateMessage.GetBody(Of ContextInfos)()
    Je reçois le message d'erreur suivant :

    Élément attendu 'ContextInfos' provenant de l'espace de noms 'http://schemas.datacontract.org/2004/07/DTO'.. Détection de 'Element' avec le nom 'GetListeModulesInfo', espace de noms 'http://tempuri.org/'.

    (Sachant que ma classe ContextInfos se situe dans un projet nommé DTO.)

    Je ne vois vraiment pas quel est le problème à ce niveau :/

    Aurais tu une idée stp ?

Discussions similaires

  1. [Web Service][SOAP] Récupérer des paramètres dans l'entête
    Par Dadou dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 24/01/2008, 13h51
  2. Réponses: 1
    Dernier message: 29/08/2005, 14h04
  3. [Débutant] Récupérer les paramètres d'une routine
    Par nifty dans le forum Assembleur
    Réponses: 5
    Dernier message: 18/04/2005, 14h35
  4. Récupérer un paramètre de strust-config.xml
    Par pegsounette dans le forum Struts 1
    Réponses: 3
    Dernier message: 18/11/2004, 11h40
  5. Réponses: 4
    Dernier message: 04/07/2003, 19h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo