我正在尝试在 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/