2010-12-01 2 views
0

私はWCF RESTサービスを持っています。次のように各受信メッセージのXML本体は私のオブジェクトにデシリアライズされます。WCF REST - ストリームをテキストに読み取る方法

  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 

      } 

私は逆シリアル化が失敗したときにログインするためにXMLを書くことができるようにしたいと思います。私が試したすべてが空の文字列になります。これも可能ですか?

ありがとうございます!

答えて

0

Streamではなく、stringとして簡単に全体を取り込み、そこからロード/逆シリアル化することができます。 Streamの特別な理由はありますか?

代わりに(より良い、IMO)、あなたはDataContractとして使用すると、デシリアライズするオブジェクトを指定して、操作の契約でXMLを必要とし、WCFのフレームワークがあなたのための作業をやらせることができます。

0

エラーログに書き込む前にストリームの位置を変更しようとしましたか?

stream.Position = 0;

関連する問題