WCF REST - как читать поток в текст - PullRequest
0 голосов
/ 01 декабря 2010

У меня есть служба WCF REST. Тело XML каждого входящего сообщения десериализовано в мои объекты следующим образом:

            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 для записи, когда десериализация не удалась. Все, что я пробовал, приводит к пустой строке. Это вообще возможно?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 02 декабря 2010

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

stream.Position = 0;

0 голосов
/ 01 декабря 2010

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

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

...