[ASP.NET CORE MVC] ConfigurationBuilderでAddJsonFileを使えない時解決方法

inno
2022-04-17 20:26 779 0

[ASP.NET CORE MVC] ConfigurationBuilderでAddJsonFileを使えない時解決方法

「ConfigurationBuilder」で「AddJsonFile」が使えない時に以下のようにすれば使えるようになります。

asp.net core mvc内ではなく別のプロジェクトでライブラリーを作成してその中で「appsettings.json」の中にあるConnectionStringsの内容を読み込んで使おうとしたら使えなかったので以下のように処理して解決しました。

 

appsettings.jsonの内容

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "ConnectionStrings": {
    "DefaultConnection": "Server=localhost;Database=TestDB;user=testuser;password=testpassword;Trusted_Connection=false;",
  },
  "AllowedHosts": "*"
}

 

 

ソースコード

「System.Web.cs」ファイルを新しく作って以下の内容を記述します。 

using Microsoft.Extensions.Configuration;
using System.IO;

namespace Inno.DB
{
    public class ReadConfig
    {
        public readonly string _connectionString = string.Empty;
        public ReadConfig()
        {
            var configurationBuilder = new ConfigurationBuilder();
            var path = Path.Combine(Directory.GetCurrentDirectory(), "appsettings.json");
            configurationBuilder.AddJsonFile(path, false);

            var root = configurationBuilder.Build();
            _connectionString = root.GetSection("ConnectionStrings").GetSection("DefaultConnection").Value;
            var appSetting = root.GetSection("ApplicationSettings");
        }
        public string ConnectionString
        {
            get => _connectionString;
        }

    }
}

 

 

NuGetパッケージ追加

「Microsoft.Extensions.Configuration.Json」NuGetパッケージをインストールします。

これで解決できます。

コメント