我在使用 MemoryStream 时遇到了一些问题
我们正在使用第 3 方电子表格组件(类似于 excel),我正在尝试通过以下SaveHtml
方法将数据保存为他们支持的 html。根据他们的文档,看起来非常简单。这是我的代码:
using (var memoryStream = new MemoryStream())
{
this.ActiveSheet.SaveHtml(memoryStream);
memoryStream.Position = 0;
using (var streamReader = new StreamReader(memoryStream))
{
var htmlData = streamReader.ReadToEnd();
}
}
设置时出现异常memoryStream.Position = 0
:
System.ObjectDisposedException: Cannot access a closed Stream.
快速浏览一下他们在 Reflector 中的 SaveHtml 方法会显示以下相关行:
public void SaveHtml(Stream stream)
{
StreamWriter writer = null;
try
{
writer = new StreamWriter(stream) { AutoFlush = true };
writer.Write(str);
}
finally
{
if (writer != null)
{
writer.Close();
}
}
}
我猜是因为 streamWriter 被他们的代码关闭了,我们不走运。关闭streamWriter,也就关闭了底层的Stream,对吧?
有什么办法可以解决这个问题?
谢谢。