web-dev-qa-db-ja.com

.net標準ライブラリからappsettings.jsonを読み取る

.NET Core Frameworkを使用して新しいRESTfulプロジェクトを開始しました。

ソリューションを2つの部分、フレームワーク(.NET標準ライブラリのセット)とWeb(RESTfulプロジェクト)に分けました。

Frameworkフォルダーを使用して、拡張Webプロジェクト用のライブラリーの一部を提供し、これらの1つに、ジェネリックメソッドT GetAppSetting<T>(string Key)を含むConfigurationクラスを提供します。

私の質問は:.NET StandardでAppSettings.jsonファイルにアクセスするにはどうすればよいですか?

私はこのファイルの読み取りについて非常に多くの例を見つけましたが、これらのすべての例はファイルをWebプロジェクトに読み込み、誰もこれを外部ライブラリに読み込みません。 Othersプロジェクト用の再利用可能なコードが必要です。

7
Lollo

コメントで既に述べたように、あなたは本当にそれをすべきではありません。 代わりに依存性注入を使用して構成済みIOptions<MyOptions>を挿入します

ただし、jsonファイルを構成としてロードすることはできます。

IConfiguration configuration = new ConfigurationBuilder()
    .SetBasePath(Directory.GetCurrentDirectory()) // Directory where the json files are located
    .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
    .Build();

// Use configuration as in every web project
var myOptions = configuration.GetSection("MyOptions").Get<MyOptions>();

必ずMicrosoft.Extensions.ConfigurationおよびMicrosoft.Extensions.Configuration.Jsonパッケージを参照してください。その他の設定オプションについては ドキュメントを参照

11
Bruno Zell