netcore中使用构造函数依赖注入读取配置文件
第一步:建立配置文件
.netcore的MVC项目在创建时会自动生成appsettings.json文件,如下:
{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "AllowedHosts": "*", "DB": { "SqlServerConnectionString": "SqlServer库连接", "MySqlConnectionString": "MySql库连接", "DmConnectionString": "达梦库连接", "DbType": "DM" } }
第二步:建立实体类
public class DbSettings { public string DbType { get; set; } public string SqlServerConnectionString { get; set; } public string DmConnectionString { get; set; } }
第三步:Programs.cs 文件的var app = builder.Build();的上方加入以下代码:
//清晰版 ConfigurationBuilder configBuilder = new ConfigurationBuilder(); configBuilder.AddJsonFile("appsettings.json"); IConfigurationRoot root = configBuilder.Build(); builder.Services.AddOptions() .Configure<DbSettings>(root.GetSection("DB").Bind);
下面的是上面语句的链式简化版,作用相同。
//简化版 builder.Services.AddOptions() .Configure<DbSettings> ( new ConfigurationBuilder() .AddJsonFile("appsettings.json") .Build() .GetSection("DB") .Bind );
第四步:Controller中注入
public class HomeController : Controller { private readonly ILogger<HomeController> _logger; private readonly IOptionsSnapshot <DbSettings> _optConfig; public HomeController(ILogger<HomeController> logger, IOptionsSnapshot<DbSettings> optConfig) { _logger = logger; this._optConfig = optConfig; } public IActionResult Index() { string s = _optConfig.Value.SqlServerConnectionString; string dm = _optConfig.Value.DmConnectionString; string result = string.Concat(s," , " ,dm,""); return Content(result); }
}
{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "AllowedHosts": "*", "DB": { "SqlServerConnectionString": "SqlServer库连接", "MySqlConnectionString": "MySql库连接", "DmConnectionString": "达梦库连接", "DbType": "DM" }}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
2011-03-24 《架构实战-软件架构设计的过程》