Я пытаюсь создать свой собственный тип IHttpActionResult
для возврата некоторых результатов из моего элемента управления, но еще до того, как мое действие на моем контроллере будет выполнено, возникает следующее исключение:
Метод «ExecuteAsync» в типе «Kevsoft.TestResult» из сборки «Kevsoft, версия = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null» не имеет реализации.
StackTrace:
Kevsoft.Controllers.TestController.d__5.MoveNext () в System.Runtime.CompilerServices.AsyncTaskMethodBuilder 1.Start[TStateMachine](TStateMachine& stateMachine) at Kevsoft.Controllers.TestController.Get(Int32 customerId, Int32 attachmentId, Guid fileId) at lambda_method(Closure , Object , Object[] ) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass6_3.<GetExecutor>b__2(Object instance, Object[] methodParameters) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary
2 аргумента, CancellationToken cancellationToken) --- Конец трассировки стека из предыдущего расположения, где было сгенерировано исключение --- в системе .Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача) в System.Web.Http.Controllers.ApiControle. предыдущее местоположение, в котором было сгенерировано исключение --- в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача-задача) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача-задача) в System.Web.Http.Filter.terrol. MoveNext () --- Конец трассировки стека от предыдущего местоположения, где было сгенерировано исключение --- в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача) в System.Runtime.CompilerServic es.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача) на System.Web.Http.Dispatcher.HttpControllerDispatcher.d__15.MoveNext ()
Пользовательский IHttpActionResult
:
public class TestResult : IHttpActionResult
{
private readonly Stream _content;
private readonly string _contentType;
private readonly string _fileName;
public AttachmentResult(Stream content, string contentType, string fileName)
{
_content = content;
_contentType = contentType;
_fileName = fileName;
}
public Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken)
{
var byteArrayContent = new StreamContent(_content);
byteArrayContent.Headers.ContentType = MediaTypeHeaderValue.Parse(_contentType);
byteArrayContent.Headers.ContentDisposition = ContentDispositionHeaderValue.Parse($@"attachment; filename=""{_fileName}""");
return Task.FromResult(new HttpResponseMessage()
{
Content = byteArrayContent,
});
}
}
Кажется, все ссылается на Microsoft.AspNet.WebApi.Core.5.2.4
пакет nuget.