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;