Visual Studio c# 中的子类 MultipartStreamProvider 失败?
Sub classing MultipartStreamProvider fails in Visual Studio c#?
我正在尝试在 Visual Studio、
中子class 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)。
我的函数 class 看起来像这样 -
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 class 看起来像这样。
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 版本不匹配的库。
我正在尝试在 Visual Studio、
中子class MultipartStreamProviderSystem.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)。
我的函数 class 看起来像这样 -
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 class 看起来像这样。
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 版本不匹配的库。