上一篇咱們將了讀取自定義配置文件。這篇咱們講一下asp.net core mvc裏讀取自帶的配置文件 appsettings.jsonhtml
首先建立個asp.net core mvc項目,項目裏有Program.cs文件, 代碼 WebHost.CreateDefaultBuilder(args) 這句話里加默認加載了appsettings.json,因此就不須要再次指定json文件了。json
其次,打開Startup.cs文件,在方法ConfigureServices裏添加一句代碼:mvc
//將MyClass註冊進Configuration services.Configure<MyClass>(Configuration);
MyClass類與appsettings.json裏的字段是一一對應的便可。app
接下來咱們就能夠使用了。asp.net
(1)建立個控制器,在構造函數裏注入函數
using Microsoft.Extensions.Options;
/// <summary> /// 構造函數,這裏用IOptionsSnapshot能夠支持熱更新,若是使用IOptions則不支持熱更新 /// </summary> /// <param name="_myclass"></param> public HomeController(IOptionsSnapshot<MyClass> _myclass) { myclass = _myclass.Value; }
(2)須要使用的地方就能夠直接拿myclass使用了。ui
public IActionResult Index() { return View(myclass); }
(3)也能夠在Views裏直接使用,直接省去(1)(2)步驟。spa
@using Microsoft.Extensions.Options; @inject IOptionsSnapshot<MyClass> myClass; @{ ViewData["Title"] = "Home Page"; } <div class="text-center"> <h1>班級名稱:@myClass.Value.className</h1> <h1>班級秒速:@myClass.Value.classDesc</h1> <div> @foreach(var s in myClass.Value.students) { <div> 學生姓名:@s.name </div> <div> 學生年齡:@s.age </div> } </div> </div>
還有種最簡單,最靈活的方法:.net
一、應用的依賴關係注入 (DI) 容器中提供了 IConfiguration。 IConfiguration 可注入到 Razor Pages PageModel 以獲取如下類的配置:code
using Microsoft.Extensions.Configuration;
public class IndexModel : PageModel { private readonly IConfiguration _config; public IndexModel(IConfiguration config) { _config = config; } // The _config local variable is used to obtain configuration // throughout the class. }
二、在須要使用的地方:
var sectCofiguration= _configuration.GetSection("RedisConfig:RedisSentinelsUrl"); string sectValu= sectCofiguration.Value;