HomeController.cs
using Microsoft.Extensions.Configuration;
public IConfiguration _configuration { get; }
public HomeController( IConfiguration Configuration )
{
_configuration = Configuration;
}
これで Startup.cs と同じように appsettings.json の値が使用できます。
_configuration.GetConnectionString("<設定名>")
appsettings.json
"MySettings": {
"KEY": "hogehoge",
"SECRET": "fugafuga",
}
「Models」フォルダを右クリックして新しいクラスを作成します
appsettings.json の中身をすべてコピーして「編集」→「形式を選択して貼り付け」→「JSONをクラスとして張り付ける」を実行すると時間が短縮できます。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace <あなたのプロジェクト名>.Models
{
public class AppSettings
{
public Mysettings MySettings { get; set; }
public class Mysettings
{
public string KEY{ get; set; }
public string SECRET { get; set; }
}
}
}
using <あなたのプロジェクト名>.Models;
using Microsoft.Extensions.Options;
を先頭に追加し、次のメソッドを書き換え
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.Configure<AppSettings>(Configuration);
}
using <あなたのプロジェクト名>.Models;
using Microsoft.Extensions.Options;
を先頭に追加し、次のプライベート変数とコンストラクタを追加
private readonly AppSettings appSettings;
public HomeController(IOptions<AppSettings> optionsAccessor)
{
this.appSettings = optionsAccessor.Value;
}
以上でコントローラーの各メソッドで this.appSettings から appsettings.json の値が参照できます。