在启动文件中,我需要一种方法来访问另一个项目中的IConfiguration。我被告知业务逻辑不应该了解IConfiguration。如果是这样的话,那么我该如何将数据从设置中注入到业务逻辑项目中。
appsettings.json
{
"AdminEmail": "myemail@gmail.com"
}
Run Code Online (Sandbox Code Playgroud)
如何在同一解决方案中创建的类库中访问AdminEmail?
定义设置模型
public sealed class EmailSettings
{
public string AdminEmail { get; set; }
}
Run Code Online (Sandbox Code Playgroud)配置设置
public sealed class Startup
{
private readonly IConfiguration configuration;
public Startup(IConfiguration configuration) => this.configuration = configuration;
public void ConfigureServices(IServiceCollection services)
{
services
.Configure<EmailSettings>(configuration)
.AddSingleton(sp => sp.GetRequiredService<IOptions<EmailSettings>>().Value);
}
}
Run Code Online (Sandbox Code Playgroud)注入并使用它
public class ClassLibraryInTheSameSolution
{
public ClassLibraryInTheSameSolution(EmailSettings emailSettings)
{
}
}
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
4503 次 |
| 最近记录: |