1、添加一個Json配置文件,名稱隨意,這里暫定名稱為xxx.json,配置文件里面添加一個Json對象,例如
{ "AwardSetting": { "ServiceFeeProportion": 0.01, "ExtractProportion": 0.09, "ExtractReceiveAddress": "" } }
2、添加一個類,名稱要和定義的Json對象定義的一致,例如
namespace Example.Award { public class AwardSetting { public double ServiceFeeProportion { get; set; } public double ExtractProportion { get; set; } public string ExtractReceiveAddress { get; set; } } }
3、配置解析類,注意引入Microsoft.Extensions.Options.ConfigurationExtensions包, 注意using的包
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration.Json; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; namespace FiiiChain.MiningPool.Award.Tools { public class ConfigurationTool { public T GetAppSettings<T>(string key) where T : class, new() { IConfiguration config = new ConfigurationBuilder() .Add(new JsonConfigurationSource { Path = "xxx.json", ReloadOnChange = true }) .Build(); T appconfig = new ServiceCollection() .AddOptions() .Configure<T>(config.GetSection(key)) .BuildServiceProvider() .GetService<IOptions<T>>() .Value; return appconfig; } } }
4、在調用的地方
ConfigurationTool tool = new ConfigurationTool(); AwardSetting setting = tool.GetAppSettings<AwardSetting>("AwardSetting");
如果不出意外的話setting里面就是你獲取的配置文件的值