2010-12-01 22 views
0

J'ai un service WCF REST. Le corps XML de chaque message entrant est désérialisée dans mes objets comme suit:WCF REST - comment lire Stream au texte

  private static Message MyMethod(Stream stream) 
      { 
       try 
       { 
        var serializer = new XmlSerializer(typeof(MyObject)); 
        var myObject = (MyObject)serializer.Deserialize(stream); 
        //do stuff 
       } 
       catch (InvalidOperationException invEx) 
       { 
        //write stream (xml) to error log 
       } 
       //etc 

      } 

Je voudrais pouvoir écrire le XML pour ouvrir une session lorsque la désérialisation échoue. Tout ce que j'ai essayé aboutit à une chaîne vide. Est-ce seulement possible?

Merci!

Répondre

0

Vous pouvez facilement mettre le tout en string plutôt qu'en Stream, et charger/désérialiser à partir de cela. Y a-t-il une raison particulière pour le Stream?

Sinon (mieux, l'OMI), vous pouvez spécifier l'objet que vous voulez de-sérialisé comme DataContract et nécessitent XML dans votre contrat d'exploitation et de laisser le cadre WCF faire le travail pour vous .

0

Avez-vous essayé de repositionner le flux avant d'écrire dans le journal des erreurs?

flux.Position = 0;