この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 413|答える: 0

[ヒント] .NET/C# 依存注入サービス登録 Scrutor ツール

[リンクをコピー]
2025年9月4日 09:37:00に投稿 | | |
要件:プロジェクトが比較的大規模で文法が非常に標準化されている場合、インターフェースを追加する際には、IServiceCollectionコンテナに手動で追加し、そのインターフェースをコンストラクタに注入する必要があります。 Scrutorツールはルール設定に応じて自動で追加できる非常に便利です。

スクルーター

アセンブリスキャンと装飾拡張のためのMicrosoft.Extensions.DependencyInjection。

ソースコードアドレス:ハイパーリンクのログインが見えます。

復習

サービス登録を振り返ると、シングルトン注入の3つの方法は以下の通りです。

サービス登録

例えば、次のようなコード構造があるとします:

インターフェースの定義
パブリックインターフェース IUserService { }
public interface IOrderService { }

実装クラス
public class UserService : IUserService { }
public class OrderService : IOrderService { }

以前は

登録は一つずつ必要で、コードは以下の通りです:

または自分でメソッドを書き、それをリフレクション(実際、スクルートは反射を通じても存在します)、以下のように:

その後

Scrutorは、特に複数のサービスクラス(例:IUserServiceとして登録されたUserService)を自動的に登録する際に、アセンブリスキャンの登録が非常に便利です。 パッケージ依存関係は以下の通りです:

コードは以下の通りです:

解釈:
  • . FromAssemblyOf<UserService>(): スキャンするアセンブリを指定します。
  • . AddClasses(): アセンブリセット内のすべてのクラスをスキャンします。
  • . AsImplementedInterfaces(): これらのクラスの実装時に自動的にインターフェースを登録します。
  • . WithScopedLifetime(): ライフタイムをScopedに設定し、WithTransientLifetime()やWithSingletonLifetime()でも構いません。

(終わり)




先の:.NET/C#はPDFをImageMagickやGhostScriptに基づく画像に変換します
次に:Alibaba CloudはOSSをLinuxシステムディレクトリにマウントします
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com