ホームページ >バックエンド開発 >C++ >依存関係を属性に注入する必要がありますか?

依存関係を属性に注入する必要がありますか?

DDD
DDDオリジナル
2025-01-15 08:24:44572ブラウズ

Should I Inject Dependencies into Attributes?

プロパティ依存関係の挿入: 推奨されません

CLR および MVC や Web API などのフレームワークの制限により、プロパティの挿入は通常は避けるべきです。

質問

コード内で、プロパティ注入を介して IPermissionServiceAuthorizeAttribute に注入すると、実行時に permissionService が null になるため、問題が発生します。

解決策

次の点を考慮してください:

オプション 1: データと動作を分離する

  • 属性からロジックをサービスに抽出します
  • コンテナにサービスを登録します
  • 属性を使用してサービスのメソッドを解析し、呼び出す

オプション 2: ハンブル オブジェクトを使用する

  • プロパティ内のすべてのロジックをカスタム サービスに移動します
  • コンテナにサービスを登録します
  • プロパティの AuthorizeCore メソッドでサービスを解決し、そのメソッドを呼び出します

どのオプションを選択しますか?

  • オプション 1: 設計の簡素化、複数のプロパティ、または MVC から独立したアセンブリでのプロパティの定義用。
  • オプション 2: 他の場合には、より現実的なアプローチ。

以上が依存関係を属性に注入する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。