1. ホーム
  2. dependency-injection

[解決済み] IServiceProviderのGetRequiredServiceメソッドとGetServiceメソッドの違いは何ですか?

2023-03-27 23:40:14

質問

の違いは何ですか? IServiceProvider.GetRequiredService()IServiceProvider.GetService() ?

どのような場合に GetRequiredService() ?

どのように解決するのですか?

可能な限りコンストラクタ注入を使用するため、これらのメソッドを呼び出す必要はほとんどないはずです。

ファクトリーやコマンドハンドラを動的にインスタンス化するようなまれなケースでは、自分で解決することができます。

とは言うものの、あなたは GetRequiredService を使うべきです。 が必要です。 を要求します。サービスが登録されていない場合は例外が投げられます。

GetService は一方では 任意 を返すだけです。 null を返します。