Start Debugging

タグ: dependency-injection

10 件

.NET 11 で IValidateOptions<T> を使って起動時にオプションを検証する方法
IValidateOptions<T> を実装し、DI に登録して ValidateOnStart をチェーンすれば、不正な appsettings.json は最初にそれに触れたリクエストではなくプロセスそのものを落とします。.NET 11 の Validate<TValidator>() オーバーロード、IAsyncValidateOptions<T> による非同期検証、そして ValidateOnStart が黙って何もしない 3 つのケースを解説します。
.NET 11 における IOptions<T> と IOptionsSnapshot<T> と IOptionsMonitor<T> の違い
既定では IOptions<T> を使ってください。シングルトンが設定のリロードを見る必要がある場合は IOptionsMonitor<T> を、スコープ付きの利用側が 1 リクエストの間だけ安定した値を必要とする場合にのみ IOptionsSnapshot<T> を選びます。判断軸は設定の形ではなく、利用側のライフタイムです。
MediatR vs 単純なサービスクラス(2026年): ライセンス変更で乗り換えるべきか?
新規コードには単純なサービスクラスがより良いデフォルトです。2025年7月のMediatRのライセンス変更が問題になるのは、Communityの500万ドルのしきい値を超えている場合か、RPL-1.5のcopyleftを拒否する場合だけです。pipeline behaviorsが不可欠なときはMediatRを残しましょう。