スポンサーリンク
スポンサーリンク

Blazor Server でInjectを一箇所に纏める

.NET CoreBlazor ServerC#SPAVisual Studio

Blazor Server はデフォルトで、_Imports.razor に using を集約できるようになっていますが、

Injectを集約できる場所はデフォルトではありません。

Injectを集約するための基本クラスを作成し、各ページで @inherits から基本クラスを継承することで、Injectを集約できます。
ソースコードはGitHubで公開しています。

 

ソースコード構成

Blazor Server でCSVファイルをダウンロード をベースに、Injectの集約だけしています。
DownloadFile.razor画面のInjectが無くても、ファイルダウンロードできるをこと確認できます。

 

ソースコード変更内容を解説

Pages/Base/PageBase.razor

・今回は特に用途が無かったので、中身が空のファイルとしています。

 

Pages/Base/PageBase.razor.cs

・Injectのまとめ先、基本クラス。
・今回は、ファイルダウンロード用、画面遷移用、JavaScript実行用、それぞれのDI(Inject)を纏めています。

 

Pages/DownloadFile.razor

・ファイルダウンロード処理をしている画面は、Injectが不要になったので削除し、inheritsで基本クラス(Base.PageBase)の継承を追加しています。

 

コメント

タイトルとURLをコピーしました