- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2018-04-10T05:26:37+00:00","default:admin","admin")
#author("2018-05-06T10:51:53+00:00","default:admin","admin")
-[[ASP.NET Core MVC における構成ファイル appsettings.json からの値取得:https://qiita.com/hiromasa-masuda/items/d7e33b20d3eedee771f4]]
-[[ASP.NET Core で設定ファイル(appsettings.json)から設定を取得する:http://kuttsun.blogspot.jp/2017/10/aspnet-core-json.html]]
-[[ASP.NET Core MVC: 環境変数を使う:https://blog.hmatoba.net/Article/128]]
-[[ASP.NET Coreでappsettings.jsonを使いこなす:http://kikki.hatenablog.com/entry/2016/11/30/000000]]
-[[ASP.NET Core / IIS で設定に環境変数を使う:http://blog.modd.com/entry/2016/08/24/115343]]
-[[ASP.NET Core の AppSetting の構成方法:https://qiita.com/TsuyoshiUshio@github/items/f45700dc2e95e7c3992a]]
-[[ASP.NET Core 1.0 でオプションを柔軟に扱えるようになった話:http://blog.shibayan.jp/entry/20160529/1464456800]]
-[[ASP.NET CORE: STEP BY STEP GUIDE TO ACCESS APPSETTINGS.JSON IN WEB PROJECT AND CLASS LIBRARY:https://hassantariqblog.wordpress.com/2017/02/20/asp-net-core-step-by-step-guide-to-access-appsettings-json-in-web-project-and-class-library/]]
-[[Easy Configuration Binding in ASP.NET Core - revisited:https://weblog.west-wind.com/posts/2017/Dec/12/Easy-Configuration-Binding-in-ASPNET-Core-revisited]]
-[[Asp.NET Core のコンフィグをカスタムクラスから使う:https://qiita.com/TsuyoshiUshio@github/items/dcaaf197889cb1ac0cdc]]
-[[アプリケーション構成情報(appsettings.json)を読み取る方法:https://st40.xyz/one-run/article/378/]]
-[[ASP.NET Coreの設定変更を即時反映させる:http://dblog.athome.co.jp/entry/2018/02/01/120000]]
-[[ASP.NET Core のオプション パターン:https://docs.microsoft.com/ja-jp/aspnet/core/fundamentals/configuration/options?view=aspnetcore-2.1]]
-[[ASP.NET CORE CONFIGURATION TIPS:https://davidpine.net/blog/asp-net-core-configuration/]]
*設定ファイル [#g6162c4a]
**appsettings.json [#q1f3d873]
{
"UserSettings": {
"IsDemoMode": false,
"DefaultUser": {
"Name": "山田 太郎",
"Age": 33
}
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
}
}
*設定の参照 [#lcf969a9]
**Startup.cs [#k004295e]
-Starup クラス内のスコープであれば、Configuration プロパティ経由で、値を取得できる
public Startup(IConfiguration configuration)
{
Console.WriteLine(configuration.GetValue<string>("UserSettings:IsDemoMode"));
Console.WriteLine(configuration.GetValue<string>("UserSettings:DefaultUser:Name"));
Configuration = configuration;
}
**Controller [#q3d265e5]
-[[アプリケーション構成情報(appsettings.json)を読み取る方法:https://st40.xyz/one-run/article/378/]]
***appsettings.jsonの例 [#v89e8025]
{
"UserName": "ユーザー名",
"Password": "パスワード",
"App":{
"Window":{
"Width": 800,
"Height": 600
}
}
}
***GetValue() で取得 [#i9c53261]
public class HomeController : Controller
{
private readonly Configuration _configuration;
public HomeController(IConfiguration configuration)
{
_configuration = configuration;
}
public IActionResult Index()
{
var userName = _configuration.GetValue<string>("UserName"); // ユーザー名
var password = _configuration.GetValue<string>("Password"); // パスワード
return View();
}
}
***クラスにバインドして取得 [#i2dd429a]
***staticの共通メソッドから呼び出したい場合 [#u3c53cdf]
-staticメソッドを持つクラスを用意
public class AppSettings
{
public static IConfiguration Configuration { get; set; }
public static string UserName { get { return Configuration.GetValue<string>("UserName"); } }
public static string Password { get { return Configuration.GetValue<string>("Password"); } }
}
-Startup.cs
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
AppSettings.Configuration = configuration; // 追加
}
}
-コントローラで取得
public class HomeController : Controller
{
public IActionResult Index()
{
var userName = AppSettings.UserName; // ユーザー名
var password = AppSettings.Password; // パスワード
return View();
}
}
**Controller以外 [#ffe586e2]
-[[Asp.NET Core のコンフィグをカスタムクラスから使う:https://qiita.com/TsuyoshiUshio@github/items/dcaaf197889cb1ac0cdc]]
-[[ASP.NET Coreの設定変更を即時反映させる:http://dblog.athome.co.jp/entry/2018/02/01/120000]]
-IOptionsをコンストラクタの引数で取る