c# - 在 Visual Studio c# 中子类 MultipartStreamProvider 失败?

标签 c# visual-studio http multipartform-data azure-functions

我正在尝试在 Visual Studio 中子类化 MultipartStreamProvider,

System.TypeLoadException: Method 'GetStream' in type 
     'Uploadfunction.InMemoryMultipartFormDataStreamProvider' from assembly 
     'Uploadfunction, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' 
     does not have an implementation.
  in Microsoft.NET.SDK.Functions.Build.targets line 31

我的第31行是这样的

        <BuildFunctions
  TargetPath="$(TargetPath)"
  OutputPath="$(TargetDir)"/>

我有 System.net 程序集,并且还下载了 Microsoft.net.sdk.functions (1.0.6)。

我的函数类看起来像这样 -

public static class UploadFunction
{
    [FunctionName("UploadFunction")]
    public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)]HttpRequestMessage req, TraceWriter log)
    {


    //Check if the request contains multipart/form-data.
        if (!req.Content.IsMimeMultipartContent("form-data"))
        {
            return req.CreateResponse(HttpStatusCode.UnsupportedMediaType);
        }

      var provider = await req.Content.ReadAsMultipartAsync(new InMemoryStream());

    return req.CreateResponse(HttpStatusCode.OK, "File Uploaded");

 }

我的 InMemoryStream 类如下所示。

public class InMemoryStream : System.Net.Http.MultipartStreamProvider
{
    public override Stream GetStream(HttpContent parent, HttpContentHeaders headers)
    {
         MemoryStream s = new MemoryStream();
        return s;
    }


}

最佳答案

不确定是什么原因导致 MultipartStreamProvider 出现问题,但如果您更改为 MultipartMemoryStreamProvider 则可以正常工作。

我的猜测是 System.Net 库存在某种不匹配,这导致 GetStream 实现之一无法对齐。您通常会在 dll 版本不匹配的库中看到这种情况。

关于c# - 在 Visual Studio c# 中子类 MultipartStreamProvider 失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47431410/

相关文章:

visual-studio - 关闭浏览器窗口时如何关闭本地tomcat服务器?

.htaccess - htaccess 文件中的多个重写规则和条件

php - 如何使用 curl 正确发送和接收 XML?

c# - 我如何设置带有低音的歌曲/文件结尾的回调?

c# - CLR 是如何进行内存管理的

c# - 在 github 上托管 VisualStudio 项目的指南

python - 有没有更好的方法来通过 HTTP 提供昂贵的阻塞 python 进程的结果?

c# - 在 WPF 中解析本地 XML 文档(调试工作,发布后失败)

c# - TextBox OnClick 事件 - 单击了什么?

c# - 选择要在 Visual Studio 2010 中调试或运行的解决方案下的项目