首頁 >後端開發 >C++ >我應該將依賴項注入屬性中嗎?

我應該將依賴項注入屬性中嗎?

DDD
DDD原創
2025-01-15 08:24:44569瀏覽

Should I Inject Dependencies into Attributes?

屬性依賴注入:不建議

由於 CLR 和 MVC、Web API 等框架的限制,通常應避免屬性注入。

問題

在您的程式碼中,透過屬性注入將 IPermissionService 注入 AuthorizeAttribute 會出現問題,因為在執行時 permissionService 將為 null。

請考慮以下方法:

方案一:分離資料與行為

  • 將屬性中的邏輯提取到一個服務中
  • 在容器中註冊該服務
  • 使用屬性解析並呼叫服務的 method

方案二:使用 Humble Objects

  • 將屬性中的所有邏輯移至自訂服務
  • 在容器中註冊該服務
  • 讓屬性的 AuthorizeCore 方法解析服務並呼叫其 method

選擇哪個方案?

  • 方案一: 對於設計簡潔性、多個屬性或在獨立於 MVC 的程式集中定義屬性的情況。
  • 方案二: 其他情況,更務實的方法。

以上是我應該將依賴項注入屬性中嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn