1、使用ConfigurationBuilder读取配置项的值
1)Settings类
public class Settings { private static IHttpContextAccessor _HttpContextAccessor; public Settings(IHttpContextAccessor httpContextAccessor) { _HttpContextAccessor = httpContextAccessor; } public static void Configure(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中Configure()方法配置
public class Startup
{
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
var httpContextAccessor = app.ApplicationServices.GetRequiredService<IHttpContextAccessor>();
Settings.Configure(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 class 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 class 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() .ConfigureServices((hostContext, services) => { services.Configure<AppSettingsModel>(ConfSetup.Configuration.GetSection("HangFire")); }); var host = hostBuilder.Build(); var opt = host.Services.GetService<IOptions<AppSettingsModel>>(); AppSettingsModel model = opt.Value; }