Метод ExecuteAsync в типе не имеет реализации - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь создать свой собственный тип 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.

...