takataka430’s blog

.NET系を中心に勉強したことのまとめを書きます

Blazorで接続文字列を読み込む

はじめに

以前ASP.NET Core Web APIで接続文字列を設定する方法を書きました。

takataka430.hatenablog.com

最近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");
    }
}

これを実行すると画面には「これは接続文字列です」と表示され、接続文字列の値を取得できていることがわかります。

参考

ASP.NET Core Blazor configuration | Microsoft Docs