.netcore 的一些简单封装配置文件配置动态注入到ioc
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了.netcore 的一些简单封装配置文件配置动态注入到ioc,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2784字,纯文字阅读大概需要4分钟。
内容图文

- 场景一些配置需要经常用到可以尝试把配置配置到配置类中需要使用时只需要通过构造函数注入配置类即可。
- json文件结构示例
"SmsSetting": { //253"Host": "123", "Account": "123", "Password": "123", "Sign": "123",//标签 //梦网 "MonYunHost": "123", "Userid": "123", "Pwd": "123", //华为"HuaWeiHost": "123", "AppKey": "123", "AppSecret": "123",//app密钥"TemplateId": "123",//模板Id"Sender": "123",//短信通道"StatusCallBack": "" },
- 配置类示例
publicclass SmsSettingConfigModel : IConfigModel { #region 253 创蓝 publicstring Host { get; set; } publicstring Account { get; set; } publicstring Password { get; set; } ///<summary>/// 签名 ///</summary>publicstring Sign { get; set; } #endregion#region 梦网 ///<summary>/// 梦网的地址 ///</summary>publicstring MonYunHost { get; set; } ///<summary>/// 长度最大6个字符,统一大写,如提交参数中包含apikey,则可以不用填写该参数及pwd,两种鉴权方式中只能选择一种方式来进行鉴权 ///</summary>publicstring Userid { get; set; } ///<summary>/// 定长小写32位字符,如提交参数中包含apikey,则可以不用填写该参数及userid,两种鉴权方式中只能选择一种方式来进行鉴权。密码规则详见 ///</summary>publicstring Pwd { get; set; } ///<summary>/// 32位长度,由梦网提供,与userid及pwd一样用于鉴权,如提交参数中包含userid及pwd,则可以不用填写该参数 ///</summary>//public string Apikey { get; set; }#endregion#region 华为 ///<summary>/// 华为地址 ///</summary>publicstring HuaWeiHost { get; set; } ///<summary>/// APP_Key ///</summary>publicstring AppKey { get; set; } ///<summary>/// AppSecret ///</summary>publicstring AppSecret { get; set; } ///<summary>/// 通道号 ///</summary>publicstring Sender { get; set; } ///<summary>/// 模板ID ///</summary>publicstring TemplateId { get; set; } ///<summary>/// 选填,短信状态报告接收地址,推荐使用域名,为空或者不填表示不接收状态报告 ///</summary>publicstring StatusCallBack { get; set; } #endregion } publicinterface IConfigModel { }
- 注入核心代码
///<summary>/// 添加configuration到配置类 ///</summary>///<param name="services"></param>privatestaticvoid AddConfiguration(this IServiceCollection services) { var types = AppDomain.CurrentDomain.GetAssemblies() .SelectMany(oo => oo.GetTypes().Where(t => t.GetInterfaces().Contains(typeof(IConfigModel)))) .ToArray(); foreach (var type in types) { services.AddSingleton(type, provider => { var sectionName = type.Name.Replace("ConfigModel", "");//截取相关代码配置类截取次部分和配置根节点匹配 var config = provider.GetService<IConfiguration>(); var model = config.GetSection(sectionName).Get(type); return model; }); } }
- 最终startup 进行注入 services.AddConfiguration();
- 实际使用通过构造函数注入SmsSettingConfigModel中的所有熟悉都有值了
SmsSettingConfigModel _smsSetting; IHttpClientFactory _httpClientFactory; public ChuangLanSendMessage( SmsSettingConfigModel smsSetting, IHttpClientFactory httpClientFactory) { _smsSetting = smsSetting; _httpClientFactory = httpClientFactory; }
原文:https://www.cnblogs.com/chongyao/p/12213055.html
内容总结
以上是互联网集市为您收集整理的.netcore 的一些简单封装配置文件配置动态注入到ioc全部内容,希望文章能够帮你解决.netcore 的一些简单封装配置文件配置动态注入到ioc所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。