asp .net
1.引用Microsoft.Extensions.Configuration
2.在Startup中注入服务
public static IConfiguration Configuration { get; private set; }public Startup(IConfiguration configuration) { Configuration = configuration; }public void ConfigureServices(IServiceCollection services) { //添加服务 services.AddUrlResolve(Configuration); }
扩展方法AddUrlResolve如下
/// <summary>/// 拓展方法/// summary>public static class Extensions { /// <summary> /// 为了保留IConfiguration /// summary> /// <param name="services">param> /// <param name="config">param> public static void AddUrlResolve(this IServiceCollection services, IConfiguration config) { services.Add(new ServiceDescriptor(typeof(UrlResolveService), typeof(UrlResolveService), ServiceLifetime.Singleton)); //读取配置文件 UrlResolveService.ApiUrl = config["ApiUrl"]; UrlResolveService.AuthorityUrl = config["AuthorityUrl"]; } }/// <summary>/// 读取配置文件的服务/// summary>public class UrlResolveService { public static string AuthorityUrl { get; set; } public static string ApiUrl { get; set; } public string GetAuthorityUrl() { return AuthorityUrl; } public string GetApiUrl() { return ApiUrl; } }
3.使用UrlResolveService服务
public async Task<IActionResult> Call(UrlResolveService urlResolveService) { //API对应网址 var apiUrl = urlResolveService.GetApiUrl(); //...... }
4.配置文件
{ //授权网址 "AuthorityUrl": "http://localhost:5000/", //API网址 "ApiUrl": "http://localhost:5001/", }
控制台(console)
1.引用
Microsoft.Extensions.ConfigurationMicrosoft.Extensions.Configuration.FileExtensionsMicrosoft.Extensions.Configuration.Json
2.创建appsettings.json
{ "YourKey": "YourValue", }
并设置为生成时复制到输出目录
3.关键代码
var builder = new ConfigurationBuilder() //保证执行文件下有json文件 .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json");IConfiguration config = new ConfigurationBuilder() .AddJsonFile("appsettings.json", true, true) .Build();var yourValue = config["YourKey"];