asp.net core mvc 讀取配置文件appsettings.json

上一篇咱們將了讀取自定義配置文件。這篇咱們講一下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;

     
相關文章
相關標籤/搜索