web-dev-qa-db-ja.com

すべてをスタートアップクラスに追加する以外に、ASP.NET Core 3.1で依存関係を登録するための堅牢な方法はありますか?

ASP.NET Core 3.1プロジェクトがあります。通常、_Startup.cs_クラスのConfigureServices()メソッドを使用して依存関係を登録します。

しかし、私は多くの依存関係を登録する必要があることに気づき、ConfigureServices()は巨大に見えます!おそらく静的メソッドの拡張メソッドを作成し、それをConfigureService() `クラスから呼び出すことができますが、もっと良い方法があるかどうか疑問に思っています。

このように1つずつ定義する必要なしにIoCコンテナに依存関係を登録する方法がある場合

_services.AddScoped<Interface, Class>();
.... 200 lines later
services.AddScoped<ISettings, Settings>()
_
10
user12310517

言及されたものに加えて。

個人的には、各アセンブリごとに依存関係を登録する個別のクラスが欲しいです。これにより、適切なレイヤーでクラスを使用するための制御が追加され、クラスをinternalにしてIMOを適切なものにすることができます。

scanメカニズムを使用するかどうかはあなた次第です。一部のフレームワークは、デフォルトでこれを提供します。同様の依存関係を一連のクラス/メソッドにグループ化すると、変更に対する一貫した場所でロジックを解決し続けるのに役立ちます。両方のアプローチを組み合わせることができます。

0
Shymep