Обложка канала

.NET Разработчик

Опытный разработчик не так давно зашёл в .Net и поставил цель получить сертификат Microsoft. Свой ежедневный прогресс он описывает на канале .Net Разработчик. Заметки об изученном материале, советы по повышению производительности и поддержке мотивации, ин

.NET Разработчик

4 года назад
Открыть в
День 1221. #ЗаметкиНаПолях Добавляем Startup.cs в Минимальные API С минимальными API в .NET 6 просто начать, но по мере роста проекта какие-то части из Program.cs лучше всё-таки вынести. Рассмотрим, как вернуть файл Startup.cs в проект минимальных API. Вот пример файла Program.cs с использованием минимальных API:
var builder = WebApplication.CreateBuilder(args);

builder.Services.AddRazorPages();

var app = builder.Build();

if (!app.Environment.IsDevelopment()) {
  app.UseExceptionHandler("/Error");
  app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.MapRazorPages();
app.Run();

Здесь всё написано в одном классе Program.cs. Мы создаём построитель приложения, регистрируем зависимости, строим приложение и добавляем промежуточное ПО. Startup.cs содержит 2 метода: ConfigureServices() для регистрации зависимостей и вызова промежуточного ПО в методе Configure(). Соответственно, всё, что идёт до строки
var app = builder.Build();
должно попасть в ConfigureServices. А всё, что после – в Configure.
public class Startup {
  public IConfiguration configRoot { get; }
  public Startup(IConfiguration configuration) {
    configRoot = configuration;
  }

  public void ConfigureServices(IServiceCollection services) {
    services.AddRazorPages();
  }

  public void Configure(WebApplication app, IWebHostEnvironment env) {
    if (!app.Environment.IsDevelopment()) {
      app.UseExceptionHandler("/Error");
      app.UseHsts();
    }
    app.UseHttpsRedirection();
    app.UseStaticFiles();
    app.UseRouting();
    app.UseAuthorization();
    app.MapRazorPages();
    app.Run();
  }
}

Теперь нужно вызвать класс Startup из Program.cs:
var builder = WebApplication.CreateBuilder(args);
var startup = new Startup(builder.Configuration);
startup.ConfigureServices(builder.Services);
var app = builder.Build();
startup.Configure(app, builder.Environment);

Заметьте, что называть методы именами ConfigureServices и Configure вовсе не обязательно. Тем более, что они похожи и часто путают (особенно новичков). Вы можете задать любые имена. Источник: https://www.c-sharpcorner.com/article/how-to-add-startup-cs-class-in-asp-net-core-6-project/