Самый эффективный способ записи в теле ответа в. NET Core 3.1 - PullRequest
0 голосов
/ 28 апреля 2020

Существует ли более эффективный способ записи в тело ответа. NET Core 3.1?

Я понимаю, что RequestDelegate для конечной точки должен быть задачей, так как он будет запущен как поток по конвейеру. NET, но повторяющиеся вызовы WriteAsyn c с использованием await кажутся слишком многословными и неэффективными.

Ниже приведен пример кода, который я пытаюсь выполнить sh.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

namespace Flux
{
    public class Startup
    {
        public void ConfigureServices(IServiceCollection services)
        {
        }

        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            app.UseRouting();
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapGet("/", DefaultRequest);
            });
        }

        public async Task DefaultRequest(HttpContext context)
        {
            await context.Response.WriteAsync("<html>");
            await context.Response.WriteAsync("<head>");
            await context.Response.WriteAsync("<title>Hello World!</title>");
            await context.Response.WriteAsync("</head>");
            await context.Response.WriteAsync("<body>");
            await context.Response.WriteAsync("Hello World!");
            await context.Response.WriteAsync("</body>");
            await context.Response.WriteAsync("</html>");
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 28 апреля 2020

Согласно ответу , данным Риком Лавом , подход StringBuilder медленнее, чем синхронный Response.Write, но это значительно более быстрый метод, чем Response.WriteAsync.

0 голосов
/ 28 апреля 2020

похоже, что вы ищете, чтобы вставить файл * stati c html. Здесь есть учебник, который вы можете использовать: Click Me

Таким образом, вы можете просто написать свой html файл, а затем внедрить его, чтобы вам не приходилось делать это в строке по линии. :

...