.net core中简单获取appsettings.json值的方式
比如appsettings.json内容如下:
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*",
"Database": {
"SqlServerConnectionString": "Data Source=localhost;Initial Catalog=ReportServer;Integrated Security=True;MultipleActiveResultSets=True",
"MySqlConnectionString": "server=localhost;port=3306;database=test;uid=root;pwd=root;Charset=utf8;Allow User Variables=True;"
}
}
要获取Database节点下的SqlServerConnectionString和MySqlConnectionString的值。网上常见的一些方法太麻烦了,这里有两种简单的方式。
方法1:
//需要引用命名空间 using Microsoft.Extensions.Configuration;
var appsettings = new ConfigurationBuilder()
.SetBasePath(Environment.CurrentDirectory)
.AddJsonFile("appsettings.json", true, true)
.Build();
var msSqlconnStr = appsettings.GetSection("Database").GetSection("SqlServerConnectionString").Value;
var mySqlConnStr = appsettings.GetSection("Database").GetSection("MySqlConnectionString").Value;
方法2:
使用Newtonsoft.Json“暴力”获取。
其实appsettings就是个json文件,把它当普通的文件把内容读取进来,再提取下就好了。
需要引入Newtonsoft,Newtonsoft是个常用的json库,如果项目中有用到此库的话可以像下面这样读取
//需要引用命名空间using Newtonsoft.Json.Linq;
var fileContent = System.IO.File.ReadAllText(Environment.CurrentDirectory + "\\appsettings.json");
var fJson = JObject.Parse(fileContent);
var msSqlconnStr = fJson["Database"]["SqlServerConnectionString"].ToString();
var mySqlConnStr = fJson["Database"]["MySqlConnectionString"].ToString();
msSqlconnStr 和 mySqlConnStr即为得到的值。(双击放大)