前言:在與傳統(tǒng)的asp.net MVC項(xiàng)目相比,.net core項(xiàng)目在項(xiàng)目目錄的文件結(jié)構(gòu)上和功能上與前者都有很大的區(qū)別。例如:在.net core中使用Startup.cs取代Global.asax文件用于加載應(yīng)用程序的配置和各種啟動(dòng)項(xiàng)。appsettings.json取代web.config文件用于存儲(chǔ)應(yīng)用程序所需的配置參數(shù)等等。。。
OK!步入正題,下面來(lái)說(shuō)一下如何讀取Json配置文件中的參數(shù)。
第一種:使用IConfiguration接口
我們先在appsettings.json中配置好數(shù)據(jù)庫(kù)連接字符串,然后讀取它
{ "Connection": { "dbContent": "Data Source=.;Initial Catalog=test;User ID=sa;Password=123456" }, "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, "AllowedHosts": "*"}
在控制器中注入IConfiguration接口
using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;using Microsoft.AspNetCore.Mvc;using Microsoft.Extensions.Configuration;namespace Read.json.Controllers{ [ApiController] [Route("[controller]")] public class ReadController : Controller { private IConfiguration _configuration; public ReadController(IConfiguration configuration) { _configuration = configuration; } [HttpPost] public async Task<string> ReadJson() { //讀參 string conn = _configuration["Connection:dbContent"]; return ""; } }}
當(dāng)然也可以讀取數(shù)組形式的json,一樣的先在appsettings.json中寫(xiě)好配置參數(shù),如下:
{ "Connection": { "dbContent": "Data Source=.;Initial Catalog=test;User ID=sa;Password=123456" }, //------------------------ "Content": [ { "Trade_name": { "test1": "小熊餅干", "test2": "旺仔QQ糖", "test3": "娃哈哈牛奶" } } ], //------------------------ "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, "AllowedHosts": "*"}
比如我們想讀取test1
string commodity_test1 = _configuration["Content:0:Trade_name:test1"];
第二種:使用IOptions<T>來(lái)讀取json配置文件
先把NuGet包導(dǎo)進(jìn)項(xiàng)目:Microsoft.Extensions.Options.ConfigurationExtensions
首先在appsettings.json中添加節(jié)點(diǎn)如下
{ "Connection": { "dbContent": "Data Source=.;Initial Catalog=test;User ID=sa;Password=123456" }, //------------------------ "Content": [ { "Trade_name": { "test1": "小熊餅干", "test2": "旺仔QQ糖", "test3": "娃哈哈牛奶" } } ], //------------------------ "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, "AllowedHosts": "*", //============================== "Information": { "school": { "Introduce": { "Name": "實(shí)驗(yàn)小學(xué)", "Class": "中班", "Number": "15人" }, "Region": { "Province": "湖北", "City": "武漢", "Area": "洪山區(qū)" }, "Detailed_address": [ { "Address": "佳園路207號(hào)" } ] } } //==============================}
新聞熱點(diǎn)
疑難解答
圖片精選