C# 发送StringContent&;同一发布到服务器中的StreamContent

C# 发送StringContent&;同一发布到服务器中的StreamContent,c#,filestream,pushstreamcontent,C#,Filestream,Pushstreamcontent,我想将字符串参数和文件发送到Web服务器。我对streamContent有一个错误 这是我的密码 using (var client = new HttpClient()) { using (var content = new MultipartFormDataContent()) { content.Add(new StringContent("loginTest"), "login"); content.Add(new StringContent("toto"), "us

我想将字符串参数和文件发送到Web服务器。我对streamContent有一个错误 这是我的密码

using (var client = new HttpClient())
{
  using (var content = new MultipartFormDataContent())
  {
   content.Add(new StringContent("loginTest"), "login");
   content.Add(new StringContent("toto"), "username");
   using (fileStream = new FileStream("C:\\test.pdf", FileMode.Open, 
          FileAccess.Read, FileShare.Read, 4096, useAsync: true))
    {
     var filestreamContent = new StreamContent(fileStream, 4096);
     content.Add(filestreamContent, "documentUpload", "test.pdf");

     using (var message = client.PostAsync("http://serverUrl/Create? 
      method=init", content))
     {
      var input = message.Result.Content.ReadAsStringAsync().Result;
      }
    }
   }
 }
这是一个有错误的屏幕截图:System.ObjectDisposedException

将fileStream作为参数传递给StreamContent的构造函数时,它将获得所有权。也就是说,在处理filestreamContent时,它还将处理fileStream。将filestreamContent添加到内容时,它还拥有所有权,即在处理内容时,它将循环遍历所有部分,然后再处理这些部分

HttpClient.PostAsync最终将调用私有函数HttpClient.DisposeRequestContent,该函数依次处理内容,然后关闭并处理所有相关流。这是故意的

您只看到了最终结果,据我所知,您没有得到任何错误或异常,除了在尝试访问调试器中现在已处理的对象的成员时