Tutorial zu ASP.NET Core Dependency Injection, Control Inversion (DI IOC):
Rezension:
Abhängigkeitsinjektion in Kurzform:
Dependency Injection (DI) ist eine Technik, die lose Kopplung zwischen einem Objekt und seinen Kollaborateuren oder Abhängigkeiten implementiert. Stellen Sie diese Objekte bereit, die die Klasse nutzt, um ihre Operationen auf irgendeine Weise für die Klasse auszuführen, anstatt direkt Kollaborateure zu instanziieren oder statische Referenzen zu verwenden.
ASP.NET Core DI verwendet im Allgemeinen Konstruktor-Injektion, um Objekte zu erhalten, etwa nach der Konfiguration der ConfigureServices-Injektion, kann sie auf folgende Weise erhalten werden:
Was, wenn du das Injektionsobjekt manuell bekommst?
Der erste Weg, es zu bekommen(Manchmal bekommt man es nicht,Nicht empfohlen):
Der zweite Weg, es zu bekommen(Empfohlene Verwendung):
Hinweis: Es sollte beachtet werden, dass die Nutzung von ServiceLocator.Instance.GetService<T>(); ,Nur Objekte, die von AddTransient und AddSingleton injiziert werden, können abgerufen werden, und kann das injizierte Objekt von AddScoped (einzigartig im Anforderungslebenszyklus) nicht erhalten, nicht weil es nicht abgerufen werden kann, sondern weil das erworbene Objekt nicht vom Konstruktor erhalten wird, das heißt, das erworbene Objekt nicht geteilt wird und das Nutzungsszenario wie IUnitOfWork ist.
Wie bekommt man also manuell die Injektionsobjekte während des Anforderungslebenszyklus? So läuft das:
oder
Die IHttpContextAccessor-Schnittstelle befindet sich unter dem Paket Microsoft.AspNetCore.Http.AbstractionsNuget.
|