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


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

MyClass類與appsettings.json里的字段是一一對應的即可。

接下來我們就可以使用了。

(1)創建個控制器,在構造函數里注入

 

using Microsoft.Extensions.Options;
   /// <summary>
        /// 構造函數,這里用IOptionsSnapshot可以支持熱更新,如果使用IOptions則不支持熱更新
        /// </summary>
        /// <param name="_myclass"></param>
        public HomeController(IOptionsSnapshot<MyClass> _myclass)
        {
            myclass = _myclass.Value;
        }

 

(2)需要使用的地方就可以直接拿myclass使用了。

  public IActionResult Index()
        { 
            return View(myclass);
        }

(3)也可以在Views里直接使用,直接省去(1)(2)步驟。

@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>

 

還有種最簡單,最靈活的方法:

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;

     

 3、強類型轉換:

//配置文件JwtSettings有子節點;對應類JwtSettings的屬性
  IConfigurationSection configSection = configuration.GetSection("JwtSettings");
//JwtSettings 是一個類
  JwtSettings config = configSection.Get<JwtSettings>();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM