ASP.NET Core使用ConfigurationBuilder读取appsettings.json配置文件
时间:2022-11-21
1、使用ConfigurationBuilder读取配置项的值
1)Settings类
public >Settings { private static IHttpContextAccessor _HttpContextAccessor; public Settings(IHttpContextAccessor httpContextAccessor) { _HttpContextAccessor = httpContextAccessor; } public static void Conp(IHttpContextAccessor httpContextAccessor) { _HttpContextAccessor = httpContextAccessor; } public static IConfigurationBuilder Getbuilder() { var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json"); return builder; } public static string GetAppSetting(string key) { //return Convert.ToString(ConfigurationManager.AppSettings[key]); var builder = Getbuilder(); var GetAppStringData = builder.Build().GetValue<string>("AppSettings:" + key); return GetAppStringData; } public static string GetConnectionString(string key="DefaultName") { var builder = Getbuilder(); var ConnectionString = builder.Build().GetValue<string>("ConnectionStrings:"+key); return ConnectionString; } }
2)在Startup中Conp()方法配置
public >Startup
{
public void Conp(IApplicationBuilder app, IHostingEnvironment env)
{
var httpContextAccessor = app.ApplicationServices.GetRequiredService<IHttpContextAccessor>();
Settings.Conp(httpContextAccessor);
}
}
2、使用新建配置Model的获取配置
需要使用Nuget引用如下,
"Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
"Microsoft.Extensions.Configuration.Json": "1.0.0"
搜索 "Microsoft.Extensions.Options.ConfigurationExtensions" 和 “Microsoft.Extensions.Configuration.Json”,在列表中分别找到它,点击 "安装" 即可。
相关文档:VS(Visual Studio)中Nuget的使用
1)appsettings.json配置文件
{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, "AllowedHosts": "*", "HangFire": { "Connection": "Server=127.0.0.1;uid=root;pwd=website;database=Hangfire_DB;AllowLoadLocalInfile=true;Allow User Variables=True;", "pathMatch": "/hangfire", "Login": "login", "PasswordClear": "pwd" } }
2)AppSettingsModel类
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace WebApplication1 { public >AppSettingsModel { public string Connection { get; set; } public string pathMatch { get; set; } public string Login { get; set; } public string PasswordClear { get; set; } } }
3)ConfSetup配置类
public static >ConfSetup { private static IConfigurationRoot _configuration; public static IConfigurationRoot Configuration { get { if (_configuration == null) { var builder = new ConfigurationBuilder().AddJsonFile("appsettings.json"); _configuration = builder.Build(); } return _configuration; } set { _configuration = value; } } }
4)获取配置项的值
var pathMatch = ConfSetup.Configuration["HangFire:pathMatch"] var connection = ConfSetup.Configuration["HangFire:Connection"]
5)获取配置AppSettingsModel的对象
public static void Main(string[] args) { var hostBuilder = new HostBuilder() .UseConsoleLifetime() .ConpServices((hostContext, services) => { services.Conp<AppSettingsModel>(ConfSetup.Configuration.GetSection("HangFire")); }); var host = hostBuilder.Build(); var opt = host.Services.GetService<IOptions<AppSettingsModel>>(); AppSettingsModel model = opt.Value; }
相关文档:.netcoreappsettings.json获取数据库连接字符串
特别声明:本站部分内容收集于互联网是出于更直观传递信息的目的。该内容版权归原作者所有,并不代表本站赞同其观点和对其真实性负责。如该内容涉及任何第三方合法权利,请及时与824310991@qq.com联系,我们会及时反馈并处理完毕。