設定ファイル

appsettings.json

{
  "UserSettings": {
    "IsDemoMode": false,
    "DefaultUser": {
      "Name": "山田 太郎",
      "Age": 33
    }
  },
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Warning"
    }
  }
}

Web.config

プロジェクトに web.config ファイルが含まれていない場合、そのファイルは ASP.NET Core モジュールを構成するための正しい processPath と arguments を使 用して作成され、発行された出力に移行されます。

プロジェクトに web.config ファイルが含まれていない場合、そのファイルは ASP.NET Core モジュールを構成するための正しい processPath と arguments を使 用して作成され、発行された出力に移行されます。 変換によりファイル内の IIS 構 成の設定が変わることはありません。

web.config ファイルは、アクティブな IIS モジュールを制御する追加の IIS 構成 設定を提供する可能性があります。 ASP.NET Core アプリを使用して要求を処理でき る IIS モジュールの詳細については、IIS モジュールのトピックを参照してくださ い。

Web SDK によって web.config ファイルが変換されないようにするため、

IsTransformWebConfigDisabled?> プロパティをプロジェクト ファイルで使用します

設定の参照

Startup.cs

  • Starup クラス内のスコープであれば、Configuration プロパティ経由で、値を取得できる
    public Startup(IConfiguration configuration)
    {
        Console.WriteLine(configuration.GetValue<string>("UserSettings:IsDemoMode"));
        Console.WriteLine(configuration.GetValue<string>("UserSettings:DefaultUser:Name"));
    
        Configuration = configuration;
    }

Controller

appsettings.jsonの例

{
    "UserName": "ユーザー名",
    "Password": "パスワード",
    "App":{
        "Window":{
            "Width": 800,
            "Height": 600
        }
    }
}

GetValue?() で取得

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();
    }
}

クラスにバインドして取得

staticの共通メソッドから呼び出したい場合

  • 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以外

  • IOptionsをコンストラクタの引数で取る
  • 起動時に読み込んだ値しか参照しないのであれば、上記の「staticの共通メソッドから呼び出したい場合」の方法で十分

各種設定

構成(v2.1以降)


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-10-11 (木) 13:06:29 (2023d)