ASP.NET Core の構成情報の上書き方法
Tech Knowledge
公開: 2023-11-14
参考
コマンドライン引数での上書き
// appsettings.json
{
"ConnectionStrings": {
"DefaultConnection": "Server=hoge-db.cbgnljufxr9b.ap-northeast-1.rds.amazonaws.com;Port=5432;Database=hoge;User ID=postgres;Password=fuga;Enlist=true;"
},
"Config": {
"DatabaseType": "PostgreSQL",
"ProxyDirectory": "",
"ListenPort": "5000",
"ManagementUser": {
"IsAdminSite": false
},
実行時の引数で設定値を上書きできる
--Config:ProxyDirectory=/admin --Config:ListenPort=5010 --Config:ManagementUser:IsAdminSite=true
実行結果
var app = builder.Build();
var configration = app.Configuration;
var proxyDirectory = configration["Config:ProxyDirectory"]; // /admin
var listenPort = configration["Config:ListenPort"]; // 5010
var isAdminSite = configration["Config:ManagementUser:IsAdminSite"]; // true
構成ファイル(*.json)の追加による上書き
// appsettings.admin.json
{
"Config": {
"ProxyDirectory": "/admin",
"ListenPort": "5010",
"ManagementUser": {
"IsAdminSite": true
}
}
}
// Program.cs
var builder = WebApplication.CreateBuilder(args);
if (args.Length > 0)
{
builder.Configuration.AddJsonFile(args[0]);
}
上記の例の場合、実行時の最初の引数に構成ファイル(フルパス)を指定することで設定を上書きできる。
/var/hoge/config/appsettings.admin.json