Aso.Net Core 的配置系统Configuration
程序员文章站
2023-10-29 08:44:10
[TOC] Aso.Net Core 的配置系统Configuration 1.以前的配置文件格式为XML 2.新版的配置文件格式支持 { json ,xml, ini, memory, command, env..... } 01.Json文件的弱类型方式读取 1. Json文件 【Mic ......
aso.net core 的配置系统configuration
1.以前的配置文件格式为xml
2.新版的配置文件格式支持 { json ,xml, ini, memory, command, env..... }
01.json文件的弱类型方式读取
json文件 【microsoft.extensions.configuration.json】
-
添加配置文件json文件,并设置内容
{ "database": { "sqlserver": { "connectionstring": "server=.;database=testdb;uid=sa;pwd=123;" }, "mysql": { "ipaddress": "127.0.0.1", "port": 3306 } }, "endarray": [ { "endid": 20 }, { "endid": "30" } ] }
-
获取数据
private static void main(string[] args) { iconfiguration configuration = new configurationbuilder() .setbasepath(environment.currentdirectory) .addjsonfile("appsettings.json",true,true) .addinmemorycollection() .build(); var str1 = configuration["database:sqlserver:connectionstring"]; var str2 = configuration["endarray:0:endid"]; console.writeline($"{str1}+---{str2}"); }
02.json文件的强类型获取方式
1.添加引用【microsoft.extensions.configuration.binder】
2.getvalue方式获取
private static void main(string[] args) { iconfiguration configuration = new configurationbuilder() .setbasepath(environment.currentdirectory) .addjsonfile("appsettings.json",true,true) .addinmemorycollection() .build(); //getvalue获取方式 int val = configuration.getvalue<int>("endarray:0:endid"); console.writeline(val); }
3.实体映射方式
private static void main(string[] args) { iconfiguration configuration = new configurationbuilder() .setbasepath(environment.currentdirectory) .addjsonfile("appsettings.json",true,true) .addinmemorycollection() .build(); //bind 获取方式 root root=new root(); configuration.bind(root); var ip = root.database.mysql.ipaddress; var entid = root.endarray[0].endid; console.writeline($"{ip}{entid}"); //get<t> 获取 var root = configuration.get<root>(); var ip = root.database.mysql.ipaddress; var entid = root.endarray[0].endid; console.writeline($"{ip}{entid}"); } //这里是实体类 public class sqlserver { /// <summary> /// /// </summary> public string connectionstring { get; set; } } public class mysql { /// <summary> /// /// </summary> public string ipaddress { get; set; } /// <summary> /// /// </summary> public int port { get; set; } } public class database { /// <summary> /// /// </summary> public sqlserver sqlserver { get; set; } /// <summary> /// /// </summary> public mysql mysql { get; set; } } public class endarray { /// <summary> /// /// </summary> public int endid { get; set; } } public class root { /// <summary> /// /// </summary> public database database { get; set; } /// <summary> /// /// </summary> public list<endarray> endarray { get; set; } }
上一篇: 紫米闹钟音箱今日预售:可设30组闹钟