asp.Netcore mvcはプロファイルappsettingsを読み出す.json

4754 ワード

前回はカスタムプロファイルを読み込みました.これはaspについてお話しします.Netcore mvcで持参したプロファイルappsettingsを読み込む.json
まずaspを作成します.Netcore 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)ビューで直接使用することもでき,(1)(2)手順を直接省くことができる.
@using Microsoft.Extensions.Options;
@inject IOptionsSnapshot myClass;

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