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クラスとappsettings.jsonのフィールドは一つ一つ対応すればいいです.
これから使えます.
(1)コントローラを作成し,コンストラクション関数に注入する
(3)ビューで直接使用することもでき,(1)(2)手順を直接省くことができる.
最も簡単で柔軟な方法もあります.
1.アプリケーションの依存関係注入(DI)容器にIConfigurationを提供する.IConfigurationは、次のクラスの構成を取得するためにRazor Pages PageModelに注入できます.
using Microsoft.Extensions.Configuration;
2、必要な場所:
まず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;