【发布时间】:2012-01-18 21:48:06
【问题描述】:
我有以下代码
public void SerializeToStream(Stream stream)
{
var xml = // Linq to xml code here
// Write to the stream
var writer = new StreamWriter(stream);
writer.Write(xml.ToString());
}
我的xml 对象具有正确的数据,并且我已经验证xml.ToString() 正确显示所有内容,但是在调用writer.Write(xml.ToString()) 之后我的传入流(无论它是FileStream 还是MemoryStream 仍然什么都没有在其中(长度为零)。没有抛出异常。为什么会发生这种情况?
请注意,我不能使用xml.WriteTo(),因为XmlWriter 类添加了我在我的xml 中无法拥有的额外内容(<xml> 声明标签)(与我无法控制的另一个系统集成的公司政策)结束)。
【问题讨论】:
-
您是在冲洗,还是 autoflush 设置为 true?
-
它可能默认写入他运行或启动应用程序的目录..
-
@MystereMan:方法签名提供了
StreamWriter真正需要的所有流... -
@MystereMan 你认为
stream是什么?可能是文件或内存流 -
它正在写入内存或文件,具体取决于此方法之外的某些逻辑,这就是为什么它只需要一个通用的
stream