asp.net core2 mvc 基础教程--读取配置文件
2021-02-08 10:16
标签:res created ons set loading build 集合 enum add config 绑定后有多种读取方式 第一种 Configuration["key"] 多级加: Configuration["key:key"] 第二种Configuration .GetSection("key") 多级 继续 .GetSection("key") 例子:Configuration.GetSection("key").GetSection("key").Value; 第三种 Configuration.GetValueint>("key"); Configuration.GetValueint>("key:key")绑定json 配置文件
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.AddJsonFile("appsettings.Development.json", optional: true, reloadOnChange: true).Build();
SetBasePath 方法设置 文件目录 可选 不设置 则默认是 web 运行路径AddJsonFile 设置要读取的josn 文件
reloadOnChange 为true 表示 当json文件被修改时重新加载
AddJsonFile 也可以用 .Add(new JsonConfigurationSource { Path = "appsettings.json", ReloadOnChange = true }) 来代替
多个配置源时 配置键相同时,读取选择最后一个添加的文件(AddJsonFile)。
若要读取所有添加文件的配置信息,可遍历ConfigurationRoot的Providers属性。 var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.AddJsonFile("appsettings.Development.json");
var config = builder.Build();
foreach (var provider in config.Providers)
{
provider.TryGet("ConnectionStrings:DefaultContext", out string defaultContext);
Console.WriteLine(defaultContext);
}
第四种 Configuration.GetSection("key").Get
第五种 Options 模式 在services 注册
public void ConfigureServices(IServiceCollection services) { services.Configure(Configuration.GetSection("Theme")); services.AddControllersWithViews(); //3.0中启用的新方法 }
public class ValuesController : Controller { private IOptions_options = null; public ValuesController(IOptions options) { _options = options; } public ContentResult GetOptions() { return new ContentResult() { Content = $"options:{ _options.Value.Name}" }; } }
利用 IOptions 来获取注入的配置类
下面是自定义配置源并注册
IConfiguration _configuration; var builder = new ConfigurationBuilder(); builder.SetBasePath(Directory.GetCurrentDirectory()); _configuration = builder.Add(new JsonConfigurationSource { Path = "my.json", Optional = false, ReloadOnChange = true }).Build(); services.Configure(_configuration.GetSection("key1"));
也可以直接在 program.cs 文件 里 找到 CreateDefaultBuilder
后加 ConfigureAppConfiguration
WebHost.CreateDefaultBuilder(args) .ConfigureAppConfiguration(builder => { builder.AddJsonFile("appconfiguration.json"); }) .UseStartup();
asp.net core2 mvc 基础教程--读取配置文件
标签:res created ons set loading build 集合 enum add
原文地址:https://www.cnblogs.com/cqqinjie/p/13081516.html
文章标题:asp.net core2 mvc 基础教程--读取配置文件
文章链接:http://soscw.com/index.php/essay/52594.html