前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >.net core使用配置文件

.net core使用配置文件

作者头像
拓荒者-NET
发布2019-09-24 14:34:21
1.2K0
发布2019-09-24 14:34:21
举报

.net core使用配置文件

在 .net core中,配置文件的读取是通过IConfiguration来提供的,程序集是Microsoft.Extensions.Configuration,对应的有一系列的实现,通过这些实现,可以读取Json/Xml/ini等类型的配置文件。

在本节示例中,我们使用Json配置文件做演示。

读取Json配置文件

Json是我们常用的配置文件格式,可以非常直观的体现配置文件的层级结构。

新建一个 .net core 控制台应用程序,并为项目添加appsettings.json文件,文件内容如下:

代码语言:javascript
复制
{
  "Name": "Jerry",
  "option1": "value1_from_json",
  "option2": 2,

  "subsection": {
    "suboption1": "subvalue1_from_json"
  },
  "wizards": [
    {
      "Name": "Gandalf",
      "Age": "1000"
    },
    {
      "Name": "Harry",
      "Age": "17"
    }
  ]
}

添加Microsoft.Extensions.Configuration.Json引用,随后使用下面的代码创建IConfiguartion对象:

代码语言:javascript
复制
public static IConfiguration Configuration { get; set; }

//构建Configuration
var builder = new ConfigurationBuilder()
    .SetBasePath(AppDomain.CurrentDomain.BaseDirectory)
    .AddJsonFile("appsettings.json");

Configuration = builder.Build();

使用IConfiguartion对象获取配置信息:

代码语言:javascript
复制
static void ReadConfiguration()
{
    Console.WriteLine($"Name = {Configuration["Name"]}");
    Console.WriteLine($"option1 = {Configuration["Option1"]}");
    Console.WriteLine($"option2 = {Configuration["option2"]}");
    Console.WriteLine($"suboption1 = {Configuration["subsection:suboption1"]}");
    Console.WriteLine();

    Console.WriteLine("Wizards:");
    Console.Write($"{Configuration["wizards:0:Name"]}, ");
    Console.WriteLine($"age {Configuration["wizards:0:Age"]}");
    Console.Write($"{Configuration["wizards:1:Name"]}, ");
    Console.WriteLine($"age {Configuration["wizards:1:Age"]}");
    Console.WriteLine();

    Console.WriteLine("Press a key...");
    Console.ReadKey();
}

使用强类型读取配置信息:

代码语言:javascript
复制
static void ConvertConfiguration()
{
    //读取整个配置文件
    var appSettings = Configuration.Get<AppSettings>();
    Console.WriteLine("AppSettings = ");
    Console.WriteLine(JsonConvert.SerializeObject(appSettings, Formatting.Indented));

    //读取某个节点
    IList<Wizard> wizards = Configuration.GetSection("wizards").Get<IList<Wizard>>();
    Console.WriteLine("wizards = ");
    Console.WriteLine(JsonConvert.SerializeObject(wizards, Formatting.Indented));

    Console.WriteLine("Press a key...");
    Console.ReadKey();
}

== 注意:在1.0版本中使用Bind方法转换,2.0以后可以使用Get方法更加方便的获取强类型文件 ==

== 注意:当使用多个配置文件,且配置文件中包含相同的键时,后添加的配置文件中的键值将覆盖先添加的键值 ==

其它类型的配置文件使用方法相似,不再赘述。

参考文档:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/startup?view=aspnetcore-2.1

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-08-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • .net core使用配置文件
  • 读取Json配置文件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档