前言:在與傳統的asp.net MVC項目相比,.net core項目在項目目錄的文件結構上和功能上與前者都有很大的區別。例如:在.net core中使用Startup.cs取代Global.asax文件用于加載應用程序的配置和各種啟動項。appsettings.json取代web.config文件用于存儲應用程序所需的配置參數等等。。。
OK!步入正題,下面來說一下如何讀取Json配置文件中的參數。
第一種:使用IConfiguration接口
我們先在appsettings.json中配置好數據庫連接字符串,然后讀取它
{ "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 ""; } }}
當然也可以讀取數組形式的json,一樣的先在appsettings.json中寫好配置參數,如下:
{ "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>來讀取json配置文件
先把NuGet包導進項目:Microsoft.Extensions.Options.ConfigurationExtensions
首先在appsettings.json中添加節點如下
{ "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": "實驗小學", "Class": "中班", "Number": "15人" }, "Region": { "Province": "湖北", "City": "武漢", "Area": "洪山區" }, "Detailed_address": [ { "Address": "佳園路207號" } ] } } //==============================}
新聞熱點
疑難解答