Member 12586110 Ответов: 1

C# ASP.NET основной веб api httprequestmessage переписать


Я переписываю метод POST из ASP.NET веб-API для ASP.NET ядро я не знаю,как переписать приведенный ниже код. Этот код прекрасно работает в ASP.NET веб-API.

ASP.NET веб-Api:

public IHttpActionResult Post()
{
    var rawds = ConvertByteToArray(Request.Content.ReadAsStreamAsync().Result); //error here at Content
    //do something
}

private byte[] ConvertByteToArray(Stream stream)
        {
            using (MemoryStream ms = new MemoryStream())
            {
                stream.CopyTo(ms);
                return ms.ToArray();
            }
        }


Что я уже пробовал:

Когда я пишу тот же код, что и ниже, в ASP.NET ядро я получаю следующую ошибку 'HttpRequest' не содержит определения для 'Content' и не может быть найден метод расширения 'Content', принимающий первый аргумент типа 'HttpRequest' (вы пропускаете директиву using или ссылку на сборку?)

ASP.NET основной:

public IActionResult Post()
{
    var rawds = ConvertByteToArrayAsync(Request.Content.ReadAsStreamAsync().Result);
    //do something
} 

public static async Task<byte[]> ConvertByteToArrayAsync(Stream stream)
        {
            using (var ms = new MemoryStream(2048))
            {
                await request.Body.CopyToAsync(ms); //get error here at request
                return ms.ToArray();
            }
        }

1 Ответов

Рейтинг:
1

Kornfeld Eliyahu Peter

await request.Body.CopyToAsync(ms);

1. В любом случае это должен быть запрос (Р и не р)!
2. кажется логической ошибкой, что вы передаете поток "результат" функции, но не используете его? Вы, наверное, хотели скопировать его в ms?