簡體   English   中英

如何在 asp.net 內核 6 中注入 IConfiguration

[英]How to inject IConfiguration in asp.net core 6

web/api 應用程序中不再有 Startup.cs。

我們曾經能夠將IConfiguration注入到Startup class 中。

public class Startup
{
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration
    }
    ...
}

現在那些添加服務和配置代碼已移至Program.cs ,從那里訪問配置的正確方法是什么?

您可以在ConfigureServices中將IConfiguration實例作為 singleton object 添加到服務集合中:

 public void ConfigureServices(IServiceCollection service){ services.AddSingleton<IConfiguration>(Configuration);  // ...} }

這允許您在任何控制器或類中注入IConfiguration

public class UserController{public UserController(IConfiguration configuration)

  // Use IConfiguration instance here}

據我所知,他們將其替換為 ConfigurationManager class 的具體實例,這是 WebApplicationBuilder 的屬性。

在您的 Program.cs class 中有一行代碼:

 var builder = WebApplication.CreateBuilder(args);

然后,您可以從此構建器實例訪問配置:

 builder.Configuration.GetConnectionString("DefaultConnection");

我知道這並不能回答您的“如何注入 IConfiguration”問題,但我猜您只是希望能夠訪問您的配置設置。 如果不是,您可以否決我的回答。

IConfiguration可以在WebApplicationBuilder中訪問。

在此處輸入圖像描述

所以不再需要注入IConfiguration ,它現在是Program.csbuilder中的一個屬性。 在此處輸入圖像描述

var builder = WebApplication.CreateBuilder(args);
var config = builder.Configuration;

builder.Services.AddInfrastructureServices(config);
builder.Services.AddPersistenceServices(config);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM