ASPで設定値を読む方法.ネットコア
ASP .ネットコアは、多くの新機能、以前のバージョンをもたらした.他の機能の中でも、新しいプロジェクトファイル、依存関係コンテナがあります.設定も変更しました.ASPで設定値を読み書きする方法を見ましょう.ネットコア.
ASP . NETで設定値を読み取るには.NETコアでは、オプションパターンを実装する必要があります.ない
それらはマカロンのオプションです.オプションパターンではない.写真でVered Caspi on Unsplash
設定値を読み込むオプションパターンを実装する方法を見てみましょう.まず、
これらの設定値を使用するには、
環境ごとに設定値を分離できます.開発、QAまたはその他の環境の設定ファイルを持つことができます.環境固有のファイル、ASP . NETで値が見つからない場合.デフォルトでは
現在の環境を
ある日想像して、レガシープロジェクトで働き始めます.しかし、設定ファイルにいくつかの設定値を見つけることができません.同僚を尋ねた後に、それらの構成値は環境変数から読み込まれます.これらの環境変数の値をテストするとき、それらは時代遅れです.arggg!
これらの環境変数を
しかし、環境変数の代わりにオプションパターンを使用するようにコードをリファクタリングできます.物事を明らかにするには、右の値を
既存の環境変数はどうですか?設定ファイルに従って既存の環境変数を変更できない場合はthe PostConfigure method . 既存の環境変数を使用して設定ファイルから読み込んだ値を上書きできます.
ベール!これで、ASPで設定値を読む方法を知っています.ネットコア.他にもあるoptions interfaces :
あなたがより多くのASPに興味があるならば.私のポストをチェックしてください.
ハッピーコーディング!
ASP . NETで設定値を読み取るには.NETコアでは、オプションパターンを実装する必要があります.ない
ConfigurationManager
からの設定値を読み込むクラスweb.config
ファイル.ASP .NETコアはJSONファイルを導入しました.オプションパターンを実装するには、appsetttings.json
デフォルトの依存関係コンテナーを使用して、コード内の読み取り値を受け取ります.それらはマカロンのオプションです.オプションパターンではない.写真でVered Caspi on Unsplash
オプションパターン
設定値を読み込むオプションパターンを実装する方法を見てみましょう.まず、
appsettings.json
ファイルを設定したい値.以前のバージョンのASPとは異なり.あなたの値をグループ化するセクションとサブセクションを使用することができます.また、文字列のみでなく、Booleans、整数、および配列を使用できます.{
"MySettings": {
"ASetting": "Hello, world!",
"ABooleanSetting": true,
"AnIntegerSetting": 1,
"AnArraySetting": ["hello", ",", "world", "!"]
}
}
次に、クラスを作成するMySettings
. このクラス名はappsettings.json
ファイル.また、プロパティ名は、設定ファイルのセクション内の値と一致する必要があります.public class MySettings
{
public string ASetting { get; set; }
public bool ABooleanSetting { get; set; }
public int AnIntegerSetting { get; set; }
public string[] AnArraySetting { get; set; }
}
次に、カスタムファイルを設定ファイルとMySettings
設定クラス.にConfigureServices
メソッドStartup
使用するクラスConfigure
メソッド.このように.services.Configure<MySettings>(_configuration.GetSection("MySettings"));
注意_configuration
フィールドにはStartup
クラス.public class Startup
{
private IConfiguration _configuration;
public Startup(IConfiguration configuration)
{
_configuration = configuration;
}
public void ConfigureServices(IServiceCollection services)
{
services.Configure<MySettings>(_configuration.GetSection("MySettings"));
services.AddControllers();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// etc...
}
}
設定ファイルのサブセクションを使用する場合は:
にConfigure
メソッド.例えば、MySettings
区間内だったAllMyCoolSettings
, その後、使用するservices.Configure<MySettings>(_configuration.GetSection("AllMyCoolSettings:MySettings"));
デフォルトでは、ASP .NETコア環境変数から設定値を読み込みます.環境変数MySettings__ASetting
はASetting
. 今回はセパレータはダブルアンデスコアです.__
.これらの設定値を使用するには、
IOptions<MySettings>
サービスまたはコントローラのコンストラクターのパラメーターです.[Route("api/[controller]")]
public class ValuesController : Controller
{
private readonly MySettings _mySettings;
public ValuesController(IOptions<MySettings> mySettingsOptions)
{
_mySettings = mySettingsOptions.Value;
}
[HttpGet]
public string Get(int id)
{
return _mySettings.ASetting;
}
}
それだ!それはアクションのオプションパターンです.テストでは、メソッドを使用できますOptions.Create
のインスタンスをMySettings
偽の設定値へのクラス.複数の環境を使う
環境ごとに設定値を分離できます.開発、QAまたはその他の環境の設定ファイルを持つことができます.環境固有のファイル、ASP . NETで値が見つからない場合.デフォルトでは
appsettings.json
ファイル.現在の環境を
ASPNETCORE_ENVIRONMENT
環境変数.開発用マシンでは、使用できますthe launchSettings.json file 環境変数を設定するには{
// ...
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"<YourSolutionName>": {
"commandName": "Project",
"launchBrowser": true,
"applicationUrl": "http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development",
"MySettings__ASetting": "A settting changed from an environment var"
}
}
}
}
設定
ある日想像して、レガシープロジェクトで働き始めます.しかし、設定ファイルにいくつかの設定値を見つけることができません.同僚を尋ねた後に、それらの構成値は環境変数から読み込まれます.これらの環境変数の値をテストするとき、それらは時代遅れです.arggg!
これらの環境変数を
launchSettings.json
ファイル.新しい開発者は再びそれらの値を見つけるのに苦労する必要はありません.しかし、環境変数の代わりにオプションパターンを使用するようにコードをリファクタリングできます.物事を明らかにするには、右の値を
appsettings.json
ファイル.既存の環境変数はどうですか?設定ファイルに従って既存の環境変数を変更できない場合はthe PostConfigure method . 既存の環境変数を使用して設定ファイルから読み込んだ値を上書きできます.
public void ConfigureServices(IServiceCollection services)
{
services.Configure<MySettings>(_configuration.GetSection("MySettings"));
// Other configurations and services...
services.PostConfigure<MySettings>((options) =>
{
var aSettingEnvVar = Environment.GetEnvironmentVariable("A_Setting");
if (!string.IsNullOrEmpty(aSettingEnvVar))
{
options.ASetting = aSettingEnvVar;
}
});
services.AddControllers();
}
結論
ベール!これで、ASPで設定値を読む方法を知っています.ネットコア.他にもあるoptions interfaces :
IOptionSnapshot
and IOptionsMonitor
. また、他の設定プロバイダーを使用して、INIファイル、XMLファイルまたはAzureキーVaultから値を読み取ることができます.あなたがより多くのASPに興味があるならば.私のポストをチェックしてください.
ハッピーコーディング!
Reference
この問題について(ASPで設定値を読む方法.ネットコア), 我々は、より多くの情報をここで見つけました https://dev.to/canro91/how-to-read-configuration-values-in-asp-net-core-2pjテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol