配置 – ASP.NET Core Expose配置到DI注入服务
发布时间:2020-12-15 22:26:55 所属栏目: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-mvc-3 – 部署到“真实”IIs网站时默认Razor View的
- 使用asp.net核心身份将数据存储在cookie中
- asp.net-mvc-3 – 有没有办法迭代ASP.NET MVC3站点中的所有
- asp.net-mvc – 使用LINQ to SQL在ASP.NET MVC中建模多对多
- asp.net-mvc-3 – mvc3 – 如何从源代码禁用符号的htmlenco
- asp.net – 加快你的IIS
- 将我的思维模式从ASP.NET迁移到ASP.NET MVC(2)时需要了解哪
- 1:ASP.NET Core MVC 2.x 全面教程
- asp.net-mvc-3 – 如何使用Windows身份验证允许匿名访问我的
- asp.net-identity – ASP.Net身份提供商请求太多信息
推荐文章
站长推荐
热点阅读