zoukankan      html  css  js  c++  java
  • .net core 学习 读取配置文件

    在空项目中是没有配置文件的,首先要新建一个,配置文件内容如下,下面来读取各个内容

    {
      "ConnectionStrings": {
        "DefaultConnection": "Server=(localdb)\MSSQLLocalDB;Database=_CHANGE_ME;Trusted_Connection=True;MultipleActiveResultSets=true",
      },
      "Name": "张三",
      "Person": {
        "Name": "张三",
        "Age": 18
      },
      "Persons": [
        {
          "Name": "张三",
          "Age": 18
        },
        {
          "Name": "李四",
          "Age": 18
        }
      ]
    }

    有时会出现中文读取乱码,用计事本打开,然后另存为 utf-8 就可以了

    ConfigurationBuilder configurationBuilder =new ConfigurationBuilder();
    //配置文件路径
    configurationBuilder.SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json");
    var configuration = configurationBuilder.Build();
                
    //读取连接字符串
    var value1= configuration.GetConnectionString("DefaultConnection");
    
    //读取自定义内容
    var value2 = configuration.GetValue<string>("Name");
    var value3 = configuration.GetValue<string>("Person:Name");
    var value4 = configuration.GetValue<int>("Person:Age");
    var value5 = configuration.GetValue<string>("Persons:0:Name");
    var value6 = configuration.GetValue<int>("Persons:0:Age");

    索引不是中括号感觉有点不适应

    上面是读取基础值,其实还可以将 Person 和 Persons 读取为对象,不过写法要改下,首先再 Startup 类中添加一个构造函数和字段

    public Startup(IConfiguration _configuration)
    {
       Configuration = _configuration;
    }
    
    public IConfiguration Configuration;

    然后在 ConfigureServices 方法添加如下

    services.Configure<Person>(Configuration.GetSection("Person"));
    services.Configure<List<Person>>(Configuration.GetSection("Persons"));

    之后是控制器中

    private Person person;
    private List<Person> persons;
    public ConfigurationController(IOptions<Person> _person, IOptions<List<Person>> _persons)
    {
        person = _person.Value;
        persons = _persons.Value;
    }

    以上就是 asp.net core 读取配置文件的方法

  • 相关阅读:
    Java正则表达式匹配例子
    python实现的json数据以HTTP GET,POST,PUT,DELETE方式页面请求
    pure-Python PDF library
    搭建nginx反向代理用做内网域名转发
    ASCII、Unicode、UTF-8 字符串和编码
    pdftk
    SQL中distinct 和 row_number() over() 的区别及用法
    使用Python进行AES加密和解密
    python中zip()函数的用法
    查找只出现一次的字符和位置
  • 原文地址:https://www.cnblogs.com/zhouyg2017/p/11979810.html
Copyright © 2011-2022 走看看