使用using块,但仍然使用ObjectDisposedException

问题描述 投票:0回答:1

我想将多个流添加到我的MultiformDataContent中,并且这样做是这样的:

 MultipartFormDataContent formdata = new MultipartFormDataContent();
 foreach (var item in files)
 {
     using (FileStream fs = File.Open(item, FileMode.Open, FileAccess.Read))
     {
         HttpContent content = new StreamContent(fs);
         formdata.Add(content, "files", item.Split(charSeparators)[2]);
     }
}
// send the content to the backend, parse results
var result = client.PostAsync(url, formdata).Result; // ObjectDisposedException

但是当我检查内容长度时,它是null,并且抛出了ObjectDisposedException

c# stream
1个回答
0
投票

此行仅将fs包装在StreamContent对象中。

HttpContent content = new StreamContent(fs);

直到您呼叫PostAsync才读取流:

client.PostAsync(url, formdata)

此时您已关闭流。发布后应丢弃该流。

© www.soinside.com 2019 - 2024. All rights reserved.