はじめに
以前ASP.NET Core Web APIで接続文字列を設定する方法を書きました。
最近Blazorを使うことがあり、同じ方法でできるだろうと思ったのですが、少しやり方が違いました。
環境
Microsoft Visual Studio Community 2022 Version 17.0.5
Blazor Server(.NET 6)
手順
ASP.NET Coreと同じようにrazorページのコンストラクタでIConfiguration
型の変数を受け取るのかと思ったのですが、Blazorでは違うようです。
以下のようにページ先頭に書きます。
@inject IConfiguration Configuration
こうするとIConfiguration型のConfiguration をコード内で利用することができます。
次に接続文字列を設定します。今回はsecrets.json
に以下のように記載してみます。
{ "ConnectionStrings": { "test": "これは接続文字列です" } }
設定したtest
の値を取得するには以下のように記述します。
[何らかの変数] = Configuration.GetConnectionString("test");
今回はページ全体のコードを以下のようにしてみました。
@page "/" @inject IConfiguration Configuration <label>@SelectedColor</label> @code { string SelectedColor = ""; //ラベルに表示する文字列 protected override void OnInitialized() { base.OnInitialized(); SelectedColor = Configuration.GetConnectionString("test"); } }
これを実行すると画面には「これは接続文字列です」と表示され、接続文字列の値を取得できていることがわかります。