Abhängigkeitsinjektion mit dem Konstruktorparameter in .net-Kern

8

Ich sehe viele Codebeispiele zur Verwendung von DI in .NET Core, aber keiner von ihnen verwendet Konstruktorparameter.

Zum Beispiel:

  • Autorisierungsservice erstellen
  • Den aktuellen HTTP-Header (X-Api-Key) in Konstruktor
  • einfügen
  • In der Implementierung prüfen, ob ich Zugriff habe

Hier muss ich nicht nur DI auf meinem IAuthorizationService verwenden, sondern auch das Token in den Konstruktor einfügen. Ich weiß, wie man es in Ninject macht, habe aber keine Erfahrung in .NET Core DI.

Hier ist was ich als Beispiel habe.

%Vor%     
sed 01.08.2016, 20:00
quelle

1 Antwort

6

Normalerweise fließen solche Werte über einen Service, bei dem die Daten in einer Middleware abgelegt sind. Zum Beispiel:

Eine Accessor-Klasse, die injiziert werden kann:

%Vor%

Und eine Middleware, die den API-Schlüssel am Anfang der Anfrage setzt:

%Vor%

Jetzt müssen wir nur noch den ApiKeyAccessor zum DI-Container mit einer rescope -Lebensdauer hinzufügen und den ApiKeyMiddleware vorzugsweise so schnell wie möglich der Pipeline für die Anforderungsausführung hinzufügen.

Bei korrekter Konfiguration können wir die Instanz ApiKeyAccessor in Controller oder Dienste einfügen:

%Vor%     
Henk Mollema 01.08.2016 20:38
quelle