Heim >Backend-Entwicklung >C++ >Sollte ich Abhängigkeiten in Attribute einfügen?

Sollte ich Abhängigkeiten in Attribute einfügen?

DDD
DDDOriginal
2025-01-15 08:24:44567Durchsuche

Should I Inject Dependencies into Attributes?

Property Dependency Injection: Nicht empfohlen

Property-Injection sollte aufgrund von Einschränkungen von CLR und Frameworks wie MVC und Web API generell vermieden werden.

Frage

In Ihrem Code ist das Einfügen von IPermissionService in AuthorizeAttribute über die Eigenschaftsinjektion problematisch, da permissionService zur Laufzeit null ist.

Lösung

Bitte beachten Sie Folgendes:

Option 1: Daten und Verhalten trennen

  • Logik aus Attributen in einen Dienst extrahieren
  • Registrieren Sie den Dienst im Container
  • Verwenden Sie Attribute, um die Methode des Dienstes zu analysieren und aufzurufen

Option 2: Bescheidene Objekte verwenden

  • Verschieben Sie die gesamte Logik in Eigenschaften in benutzerdefinierte Dienste
  • Registrieren Sie den Dienst im Container
  • Lassen Sie die AuthorizeCore-Methode der Eigenschaft den Dienst auflösen und ihre Methode aufrufen

Welche Option soll ich wählen?

  • Option 1: Zur Vereinfachung des Designs, mehrerer Eigenschaften oder der Definition von Eigenschaften in einer von MVC unabhängigen Baugruppe.
  • Option 2: In anderen Fällen ein pragmatischerer Ansatz.

Das obige ist der detaillierte Inhalt vonSollte ich Abhängigkeiten in Attribute einfügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn