此问题基于与此答案相关的注释。
总而言之,问题是如何在调用 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)。
但这似乎不是最好的方法。还有进一步的建议吗?
蝴蝶刀刀
相关分类