ソースはcommentです。TryAdd
バージョンはすでにIServiceCollection
に登録されていればサービスを追加しません。しかし、docsはこの方法について言及していません。 いつ使用する必要がありますか?AspNetコアDI:試用追加対使用量を追加
8
A
答えて
13
通常、依存関係を持つライブラリがある場合、ライブラリのコンシューマが起動時に呼び出すデフォルトの依存関係を呼び出すように、IServiceCollectionの拡張メソッドを作成します。
.TryAddは、インターフェイスの実装を1つだけ使用する必要がある場合は、拡張メソッド内で便利です。その後、誰かがデフォルトの実装をオーバーライドしたい場合は、の前にを登録し、その実装が最初に登録されているので、TryAddは何も追加しません。
拡張メソッドで.Addを使用する場合でも、の後に実装を登録して、デフォルトの実装を上書きすることができます。しかし、この場合にはまだ複数の実装が登録されているので、IFooのIEnumerableに依存して登録されているすべての実装を得ることができます。しかし、彼らがIFooに依存する場合、デフォルトのもの、つまり最後に追加されたものを取得します。
関連する問題
- 1. ASPNETコアのレジスタインスタンスDI
- 2. aspnetコア2に複数のクッキースキームを追加
- 3. エンティティフレームワークを使用したAsp.netコア追加コントローラ
- 4. チェックボックスを使用して数量をカートに追加
- 5. MySQL:遅いログ。 CPU使用量を追加する
- 6. ASP.Netコア - スケジューラタスクの追加
- 7. 配列を使用して追加領域を追加する
- 8. PHP追加のMysqlクエリを使用した配列の追加
- 9. TokenMismatchException数量を追加したときカートに追加
- 10. Unity DIを使用する場合エンティティフレームワークでNon DIサービスを追加する方法
- 11. アセンブリ言語8086 - 相対量を追加できません
- 12. ASP.netコアに画像を追加する
- 13. EFコアに外部キー列を追加
- 14. XML .NETコア(コンソール)を追加する
- 15. WCFリファレンスサーバーを.netコアAPIプロジェクトに追加
- 16. Excel:VBAを使用してシーケンシャルカラムを追加
- 17. CSSを使用してステータスアイコンを追加
- 18. jQueryを使用してボタンを追加
- 19. SharpSVNを使用してファイルを追加
- 20. 使用JSTLをArrayListに値を追加
- 21. phpを使用してコンマを追加
- 22. coreData多対多リレーションテーブルに追加プロパティを追加する
- 23. NavigationDrawerを使用したListViewの追加
- 24. gunicornで追加コマンドライン引数を使用
- 25. 追加のライブラリを使用する
- 26. GroupLayoutを使用するJPanelに追加
- 27. 追加ファイルを使用するセットアップ
- 28. numpy.reshape()を使用したディメンションの追加
- 29. jQueryを使用して追加する
- 30. 追加のパラメータを使用してredirect_to