Я получаю XML через HttpPost для своей службы и хочу записать полученное значение в целях отладки.
Сначала я десериализую его в сущность, подобную этой:
XmlSerializer s = new XmlSerializer(typeof(TransactionResults));
TransactionResults t = (TransactionResults)s.Deserialize(stream);
Это, конечно, перемещает поток до конца, поэтому я не могу записать исходное значение.
Я пытался найти начало, чтобы затем прочитать его с StreamReader
, но он выдает NotSupportedException
В качестве теста я попытался повторно сериализовать его (я создал все объекты снова, чтобы избежатьиспользовать их, чтобы увидеть, была ли это проблема)
private static string GetContents(TransactionResults t)
{
XmlSerializer s = new XmlSerializer(typeof(TransactionResults));
MemoryStream stream = new MemoryStream();
s.Serialize(stream, t);
return new StreamReader(stream).ReadToEnd();
}
Этот метод возвращает пустую строку.
(Очевидно, что если я инвертирую логику, значение будет записано в журнал, но затем яне могу получить объект)
Что я делаю не так?Как лучше всего десериализовать значение в объект и записать его в виде строки?