【发布时间】:2020-05-06 22:00:43
【问题描述】:
我有一个以下面显示的块结尾的函数。
using (var stream = new MemoryStream(someBytes))
{
var result = new HttpResponseMessage { Content = new StreamContent(stream) };
return result;
}
但是,在另一个文件中,这个结果被用在这样的一行中:
var justSomeString = returnedResultFromAbove.Content.ReadAsStringAsync().Result;
这会导致以下错误:
System.Net.Http.HttpRequestException:将内容复制到流时出错。 ---> System.ObjectDisposedException: 无法访问已关闭的 Stream。
解决此问题的最佳方法是什么?我是否应该不将 MemoryStream 包装在 using 块中?有没有办法让它保持打开足够长的时间以供阅读然后丢弃?
【问题讨论】:
-
为什么不跳过流并使用ByteArrayContent?