zoukankan      html  css  js  c++  java
  • .net core使用配置文件

    .net core使用配置文件

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

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

    读取Json配置文件

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

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

    {
      "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对象:

    public static IConfiguration Configuration { get; set; }
    
    //构建Configuration
    var builder = new ConfigurationBuilder()
        .SetBasePath(AppDomain.CurrentDomain.BaseDirectory)
        .AddJsonFile("appsettings.json");
    
    Configuration = builder.Build();
    
    

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

    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();
    }
    

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

    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

  • 相关阅读:
    用正则表达式简单加密(C#为例)
    新浪微博error:redirect_uri_mismatch的解决方法 [
    UITableView延伸:点击cell关闭键盘,加载不同cell,监听里面的textfeild内容改变
    iossharesdk微信登录出错
    关于IOS项目QQ空间授权提示安装最新版本的QQ的解决方法!
    如何解决 错误code signing is required for product type 'xxxxx' in SDK 'iOS 8.2'
    UITableView加载几种不同的cell
    iOS学习小结(一)
    开源中国+soucetree
    获取本机ip地址
  • 原文地址:https://www.cnblogs.com/youring2/p/9427627.html
Copyright © 2011-2022 走看看