はじめに
自分用メモですが、同じ状況の方の参考になれば幸いです。
WPF と ASP.NET の API 開発を長年やっています。
問題点
DI(依存性注入)でサービスの登録を忘れた場合、コントローラーで呼び出すと 実行時エラー になります。
これが発生すると、原因調査や修正がとても面倒です。
対応
起動時にサービス登録漏れを検出できるよう、
ValidateOnBuild と ValidateScopes を有効化します。
var builder = WebApplication.CreateBuilder(args);
builder.Host.UseDefaultServiceProvider((_, options) =>
{
options.ValidateScopes = true; // スコープ検証
options.ValidateOnBuild = true; // ビルド時検証
});
builder.Services.AddControllers()
.AddControllersAsServices();
この設定を行うと、実行時エラーが起動時エラーに変わります。
ChatGPT から教えてもらった方法ですが、とても重宝しています。