1、背景知识点:
IConfiguration : https://www.cnblogs.com/edison0621/p/10854215.html
2、配置文件分析以及读取方式示例
首先看配置文件,一般配置文件节点较少情况下,直接是采用以下这种通用读取配置的方式
var Username = _configuration["Steam:Username"]
对于节点较多的话以上方式就不是很优雅,下面就记录下 自定义读取配置文件 的方式 。
示例:
以控制台应用程序为例(net core api及asp net core 采用绑定配置模型的方式,涉及到注册服务此处不一一列举):
配置文件帮助类 SteamConfigHelper
public class SteamConfigHelper { private static IConfiguration _configuration; static SteamConfigHelper() { //在当前目录或者根目录中寻找appsettings.json文件 var fileName = "appsettings.json"; var directory = AppContext.BaseDirectory; directory = directory.Replace("\", "/"); var filePath = $"{directory}/{fileName}"; if (!File.Exists(filePath)) { var length = directory.IndexOf("/bin"); filePath = $"{directory.Substring(0, length)}/{fileName}"; } var builder = new ConfigurationBuilder() .AddJsonFile(filePath, false, true); _configuration = builder.Build(); } public static SteamJson GetSteamJson() { SteamJson sj = new SteamJson(); sj = _configuration.Get<SteamJson>();//此处为SteamJson类 return sj; } }
配置文件类 SteamJson:
public class Steam { /// <summary> /// /// </summary> public string Username { get; set; } /// <summary> /// /// </summary> public string Password { get; set; } /// <summary> /// /// </summary> public string WebAPIKey { get; set; } } public class SteamJson { /// <summary> /// /// </summary> public string ConnectionString { get; set; } /// <summary> /// /// </summary> public Steam Steam { get; set; } /// <summary> /// /// </summary> public List<int> SteamAdmins { get; set; } }
配置文件 appsettings.json:
{ "ConnectionString": "server=*****;port=****;userid=****;password=****;database=****;charset=utf8;pooling=true", "Steam": { "Username": "*****", "Password": "*****", "WebAPIKey": "******" }, "SteamAdmins": [ 00000000000000001 ] }
调用方式:
var config = SteamConfigHelper.GetSteamJson(); var Username = config.Steam.Username; var Password = config.Steam.Password;
var config = SteamConfigHelper.GetSteamJson();
var Username = config.Steam.Username; var Password = config.Steam.Password;