[英]In Visual studio 2022, How To add IConfiguration and add configuration in Program.cs like startup.cs?
我需要添加配置並進行相應的自定義。 在之前版本的startup.cs中有一個class是專門用來配置的。 我需要知道如何在 program.cs 中添加配置
在之前版本的startup.cs中有一個class是專門用來配置的。 我需要知道如何在 program.cs 中添加配置
我們做得到:
var builder = WebApplication.CreateBuilder(args);
//Get the instance of the IConfiguration service
var configuration = builder.Configuration;
//We can configure configuration variables of type IConfiguration and get a value
var vTestValue = configuration.GetValue<string>("TestValue");
IConfiguration
接口位於Microsoft.Extensions.Configuration
命名空間中。 您可以安裝Microsoft.Extensions.Configuration nuget,並訪問 IConfiguration 界面。
您可以獲得這樣的配置:
IConfiguration configuration = builder.Configuration;
你可以做這樣的事情來模擬 Startup.cs 然后有 IConfiguration。 就個人而言,我發現 Startup.cs 更具可讀性。 在你的應用程序設置中:
"Employee": {
"Title": "Mr",
"Name": "Joe Smith"
}
對應的POCO:
public class EmployeeOptions
{
public const string Employee = "Employee";
public string Title { get; set; } = String.Empty;
public string Name { get; set; } = String.Empty;
}
現在,您可以在您的 controller 或服務中使用 IOptions 或 IOptionsSnapshot,或者您可以像下面這樣在 Startup.cs 中進行依賴注入。
public class Program
{
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
var startup = new Startup(builder.Configuration);
startup.RegisterServices(builder.Services);
var app = builder.Build();
startup.SetupMiddlewares(app);
app.Run();
} }
然后創建一個名為 Startup.cs 的文件並注入 IConfiguration。
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void RegisterServices(IServiceCollection services)
{
services.Configure<EmployeeOptions>(
Configuration.GetSection(EmployeeOptions.Employee));
}
public void SetupMiddlewares(WebApplication app)
{
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.