【发布时间】:2010-06-28 14:47:07
【问题描述】:
我通过 HttpPost 接收到我的服务的 XML,并且我想记录接收到的值以用于调试目的。
首先我将它反序列化成这样的实体:
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();
}
此方法返回一个空字符串。
(显然,如果我反转逻辑,值会被记录,但我无法获取对象)
我做错了什么?将值反序列化为对象并将其记录为字符串的最佳方法是什么?
【问题讨论】:
标签: c# stream serialization