2010-12-01 3 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

Вы можете легко привести все это как string, а не Stream, а также загрузить/десериализовать. Есть ли особая причина для Stream?

В качестве альтернативы (лучше, ИМО), вы можете указать объект, который вы хотите десериализуются как DataContract и требуют XML в контракте работы и пусть рамки WCF сделать работу для вас.

0

Вы пытались переместить поток перед записью в журнал ошибок?

stream.Position = 0;

Смежные вопросы