上一篇咱们将了读取自定义配置文件。这篇咱们讲一下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;