上一篇我们将了读取自定义配置文件。这篇我们讲一下asp.net core mvc里读取自带的配置文件 appsettings.json
首先创建个asp.net core mvc项目,项目里有Program.cs文件, 代码 WebHost.CreateDefaultBuilder(args) 这句话里加默认加载了appsettings.json,所以就不需要再次指定json文件了。
其次,打开Startup.cs文件,在方法ConfigureServices里添加一句代码:
//将MyClass注册进Configuration services.Configure(Configuration);
MyClass类与appsettings.json里的字段是一一对应的即可。
接下来我们就可以使用了。
(1)创建个控制器,在构造函数里注入
using Microsoft.Extensions.Options;
////// 构造函数,这里用IOptionsSnapshot可以支持热更新,如果使用IOptions则不支持热更新 /// /// public HomeController(IOptionsSnapshot _myclass) { myclass = _myclass.Value; }
(2)需要使用的地方就可以直接拿myclass使用了。
public IActionResult Index() { return View(myclass); }
(3)也可以在Views里直接使用,直接省去(1)(2)步骤。
@using Microsoft.Extensions.Options; @inject IOptionsSnapshotmyClass; @{ ViewData["Title"] = "Home Page"; } class="text-center">班级名称:@myClass.Value.className
班级秒速:@myClass.Value.classDesc
@foreach(var s in myClass.Value.students) {学生姓名:@s.name学生年龄:@s.age}
还有种最简单,最灵活的方法:
1、应用的依赖关系注入 (DI) 容器中提供了 IConfiguration。 IConfiguration 可注入到 Razor Pages PageModel 以获取以下类的配置:
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. }
2、在需要使用的地方:
var sectCofiguration= _configuration.GetSection("RedisConfig:RedisSentinelsUrl"); string sectValu= sectCofiguration.Value;