using System;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Configuration.Json;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
namespace QM.Gateway
{
///
/// 读取配置文件信息
///
public class ConfigJsonHelper
{
public static IConfiguration Configuration { get; set; }
static ConfigJsonHelper()
{
//ReloadOnChange = true当appsettings.json被修改时重新加载
Configuration = new ConfigurationBuilder()
.Add(new JsonConfigurationSource { Path = "appsettings.json", ReloadOnChange = true })
.Build();
}
///
/// 获得配置文件的对象值
///
///
///
///
public static string GetJson(string jsonPath, string key)
{
IConfiguration config = new ConfigurationBuilder().AddJsonFile(jsonPath).Build(); //json文件地址
string s = config.GetSection(key).Value; //json某个对象
return s;
}
///
/// 根据配置文件和Key获得对象
///
///
/// 文件名称
/// 节点Key
///
public static T GetAppSettings(string fileName, string key) where T : class, new()
{
var baseDir = AppContext.BaseDirectory + "json/";
var currentClassDir = baseDir;
IConfiguration config = new ConfigurationBuilder()
.SetBasePath(currentClassDir)
.Add(new JsonConfigurationSource { Path = fileName, Optional = false, ReloadOnChange = true })
.Build();
var appconfig = new ServiceCollection().AddOptions()
.Configure(config.GetSection(key))
.BuildServiceProvider()
.GetService>()
.Value;
return appconfig;
}
}
}