配置 – ASP.NET Core Expose配置到DI注入服务
发布时间:2020-05-28 11:46:43 所属栏目:asp.Net 来源:互联网
导读:我有一个ASP.NET核心WebAPI项目,我正在尝试添加配置到我的IEmailServic,我通过DI注入这样: services.AddTransientIEmailSender, AuthMessageSender(); AuthMessageSender的实例如何进入配置文件中的设置? 您应该使用具有强类型配置的 options模式: 创建您
|
我有一个ASP.NET核心WebAPI项目,我正在尝试添加配置到我的IEmailServic,我通过DI注入这样: services.AddTransient<IEmailSender,AuthMessageSender>(); AuthMessageSender的实例如何进入配置文件中的设置? 解决方法您应该使用具有强类型配置的 options模式:>创建您的EmailSettings强类型配置类: public class EmailSettings
{
public string HostName { get; set; }
public string Username { get; set; }
public string Password { get; set; }
}
>更新您的appsettings.json以包含映射到您的EmailSettings配置类的配置部分: {
"Logging": {
"IncludeScopes": false,"LogLevel": {
"Default": "Debug","System": "Information","Microsoft": "Information"
}
},"EmailSettings": {
"HostName": "myhost.com","Username": "me","Password": "mysupersecretpassword",}
}
>在Startup类的ConfigureServices调用中,将appsettings.json绑定到您的config类 public void ConfigureServices(IServiceCollection services)
{
services.Configure<MySettings>(
options => Configuration.GetSection("EmailSettings").Bind(options));
}
>在AuthMessageSender类中,注入IOptions实例< EmailSettings>进入构造函数 public class AuthMessageSender
{
private readonly EmailSettings _settings;
public AuthMessageSender(IOptions<EmailSettings> emailSettings)
{
_settings = emailSettings.Value;
// _settings.HostName == "myhost.com";
}
}
请注意,在步骤3中,您也可以使用 public void ConfigureServices(IServiceCollection services)
{
services.Configure<MySettings>(Configuration.GetSection("EmailSettings"));
}
如果在project.json中添加对Microsoft.Extensions.Options.ConfigurationExtensions的引用: {
"dependencies": {
"Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0"
}
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 如何在抛出请求验证异常时显示自定义错误页面?
- asp.net – 如何在SQL数据库中创建和存储用户定义的自定义字
- asp.net-mvc – 将ASP.NET MVC应用程序部署到IIS7并保持干净
- asp.net – System.Reflection.Assembly.LoadFile锁定文件
- asp.net-mvc – 我在哪里可以初始化Orchard模块中的AutoMap
- asp.net viewstate加密问题
- asp.net核心 – Microsoft Asp.Net 5 RC1
- asp.net – System.Diagnostics.Process.Start不能从IIS工作
- asp.net核心,角度2,PrimeNG
- asp.net中ScriptManager和ScriptManagerProxy之间的区别
