Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 2964|Antwort: 0

[Quelle] ASP.NET Core-Abhängigkeiten (fünfundzwanzig) injizieren Lazy Lazy Lazy Initialization

[Link kopieren]
Veröffentlicht am 10.10.2023 21:14:31 | | | |
Anforderungen: Dienste ASP.NET Core hinzufügen, Services über Konstruktoren injizieren und die Initialisierung der Implementierungsklasse verzögern (unterschiedliche logische Verarbeitung je nach HTTP-Kontextanforderung), und denken Sie daran, Lazy<T> für Lazy für Lazy für Lazy Initialization zu verwenden.

Rezension:

Wie Lazy in C# Threads sicher hält
https://www.itsvse.com/thread-10621-1-1.html

C# Performance-Optimierung: Lazy initialisiert lazy mit <T>einer Verzögerung
https://www.itsvse.com/thread-7700-1-1.html
Direkt in die Schnittstelle injizieren

Der Konstruktor wird direkt in den Interface-Service eingeschleust, und der Code sieht wie folgt aus:

Die Hinrichtungsreihenfolge ist wie folgt:



Sie können folgende Ausführungsreihenfolge sehen: IA-Implementierungsklasse -> HomeController-Konsole -> Index-Methode

Initialisieren Sie mit Lazy Delay

Wenn der Controller-Konstruktor IA auf Lazy <IA>ändert, sieht der Fehler wie folgt aus:

InvalidOperationException: Unable to resolve service for type 'System.Lazy`1[WebApplication6.IA]' while attempting to activate 'WebApplication6.Controllers.HomeController'.
Der Fehler liegt daran, dass wir uns nicht für lazy-bezogene Dienste registriert haben, wir müssen einen Lazy<> generischen Service registrieren, der Code lautet wie folgt:

Zum Service hinzufügen:

Die Hinrichtungsreihenfolge ist wie folgt:



Du kannst die Ausführungsreihenfolge sehen: HomeController console -> Index method -> IA-Implementierungsklasse, du kannst sie sehenIA-Schnittstellen-Verzögerungsinitialisierunginstanziiert das IA-Implementierungsobjekt, wenn es aufgerufen wird.

(Ende)





Vorhergehend:CIDR: Lesen Sie die Beschreibung der CIDR-Adresse in einem Artikel
Nächster:Das Frontend speichert das localForage-Paket von IndexedDB
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com