欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

.net core 学习 读取配置文件

程序员文章站 2022-06-29 14:06:18
在空项目中是没有配置文件的,首先要新建一个,配置文件内容如下,下面来读取各个内容 { "ConnectionStrings": { "DefaultConnection": "Server=(localdb)\\MSSQLLocalDB;Database=_CHANGE_ME;Trusted_Con ......

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

{
  "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 读取配置文件的方法