我在使用 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,对吧?
有什么办法可以解决这个问题?
谢谢。