在控制臺應用程式中,我沒有手動構建 IConfiguration 和 IServiceProvider,而是嘗試使用以下Host.CreateDefaultBuilder()程序:
IHost host = Host.CreateDefaultBuilder()
.ConfigureServices((context, services) =>
{
services.AddSingleton<Whatever>();
})
.Build();
搭建好主機后就可以拿到配置物件了。但是我正在尋找的是一種在仍在ConfigureServices正文中時獲取配置物件的方法,以便我可以將配置部分系結到服務提供者。
就像是:
AccountConfiguration accountConfig = new();
config.Bind("AccountConfiguration", accountConfig);
services.AddSingleton(accountConfig);
// or
services.Configure<AccountConfiguration>(config.GetSection("AccountConfiguration"));
有沒有辦法在配置服務的同時訪問配置物件?或者在已經構建主機后將物件添加到服務集合的好方法?
uj5u.com熱心網友回復:
傳遞給 lambda 的第一個引數ConfigureServices是HostBuilderContext公開配置屬性 - IConfiguration Configuration:
IHost host = Host.CreateDefaultBuilder()
.ConfigureServices((context, services) =>
{
IConfiguration config = context.Configuration;
// use config
services.AddSingleton<Whatever>();
})
.Build();
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/360553.html
