此問題基于與此答案相關的注釋??偠灾?,問題是如何在調用 ConfigureServices 設置依賴項時,如何將配置設置傳遞到 Web 作業,而不將 IConfiguration 接口作為依賴項注入。我本來以為這將是一個很好的方法:IHostBuilder builder = new HostBuilder;...builder.ConfigureServices((context, services) =>{ services.AddSingleton<IMyModelClass, MyModelClass>(sp => new MyModelClass(context.Configuration)); services.AddSingleton<IMyServiceClass, MyServiceClass>(sp => new MyServiceClass(new MyModelClass()));})在這里,MyModelClass是一個讀取配置設置的類,如下所示:public class MyModelClass : IMyModelClass{ public string MySetting { get; set; } public MyModelClass(IConfiguration config) { this.MySetting = config["MySetting"]; }}因此,它封裝了這些設置,并且可以傳遞給需要訪問配置設置的其他類(如 MyServiceClass)。但這似乎不是最好的方法。還有進一步的建議嗎?
1 回答

蝴蝶刀刀
TA貢獻1801條經驗 獲得超8個贊
因此,讓我們假設有以下配置
{
"MyModelSection": {
"MySetting": "SomeValue"
}
}
這只是一個非常簡單的例子。
關聯的模型將如下所示
public class MyModelClass: IMyModelClass {
public string MySetting { get; set;}
}
以上內容可以從配置中提取,并注冊到服務
builder.ConfigureServices((context, services) => {
var configuration = context.Configuration.
var myModel = configuration.GetSection("MyModelSection").Get<MyModelClass>();
services.AddSingleton<IMyModelClass, MyModelClass>(myModel);
services.AddSingleton<IMyServiceClass, MyServiceClass>();
})
- 1 回答
- 0 關注
- 104 瀏覽
添加回答
舉報
0/150
提交
取消