Обмен технологиями

В проекте ASP.NET Core webapi, созданном с помощью .NET6, нет класса Startup и метода ConfigurationServices.

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Функция Startup.cs заключается в управлении статическими файлами, каналами, службами, журналами, маршрутизацией, подключениями к базе данных, регистрацией фильтров и т. д., используемыми в проекте, а также используются при запуске и запуске всех связанных программ.

Если файл startup.cs отсутствует, вы можете вручную создать новый класс Startup.cs (Конкретный код может быть изменен в соответствии с вашей ситуацией.

  1. public class Startup
  2. {
  3. public Startup(IConfiguration configuration)
  4. {
  5. Configuration = configuration;
  6. }
  7. public IConfiguration Configuration { get; }
  8. //在依赖注入容器中注册服务
  9. public void ConfigureServices(IServiceCollection services)
  10. {
  11. services.AddSingleton<IDbConfig.IDbConfig, DbConfig.DbConfig>();
  12. services.AddTransient<IBaseService, BaseService>();
  13. services.AddControllers();
  14. services.AddSwaggerGen(c =>
  15. {
  16. c.SwaggerDoc("v1", new OpenApiInfo { Title = "这里填写项目的名称", Version = "v1" });
  17. });
  18. }
  19. public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
  20. {
  21. if(env.IsDevelopment())
  22. {
  23. app.UseDeveloperExceptionPage();
  24. app.UseSwagger();
  25. app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "这里填写项目的名称 v1"));
  26. }
  27. app.UseRouting();
  28. app.UseAuthorization();
  29. app.UseEndpoints(endpoints =>
  30. {
  31. endpoints.MapControllers();
  32. });
  33. }
  34. }

После написания вышеизложенного можно переходить ко второму шагу.

внутренняя логика обновления program.cs

Все объекты, необходимые классу Startup.cs, присутствуют в объекте компоновщика, поэтому мы можем передать необходимые объекты методам и.

  1. var builder = WebApplication.CreateBuilder(args);
  2. var startup = new Startup(builder.Configuration);
  3. startup.ConfigureServices(builder.Services);
  4. var app = builder.Build();
  5. startup.Configure(app, builder.Environment);