如何从另一个项目访问应用程序设置 [英] How to access appsettings from another project
本文介绍了如何从另一个项目访问应用程序设置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在启动文件中,我需要一种访问另一个项目中的IConfiguration的方法.有人告诉我,业务逻辑不应该了解IConfiguration.如果是这种情况,那么我该如何将数据从设置中注入到业务逻辑项目中.
In the startup file I need a way to access IConfiguration in another project. I have been told the Business Logic should not know about IConfiguration. If thats the case then how do I inject data from appsettings down to the business logic projects.
appsettings.json
{
"AdminEmail": "myemail@gmail.com"
}
如何在同一解决方案中创建的类库中访问AdminEmail?
How would I access AdminEmail in a class library I created in the same solution?
推荐答案
-
定义设置模型
Define a model for settings
public sealed class EmailSettings { public string AdminEmail { get; set; } }
-
配置设置
Configure settings
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); } }
-
注入并使用
Inject and use it
public class ClassLibraryInTheSameSolution { public ClassLibraryInTheSameSolution(EmailSettings emailSettings) { } }
这篇关于如何从另一个项目访问应用程序设置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文