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

Ansehen: 413|Antwort: 0

[Tipps] .NET/C# Dependency Injection Service Registration Scrutor-Tool

[Link kopieren]
Veröffentlicht am 04.9.2025 09:37:00 | | |
Anforderungen: Wenn das Projekt relativ groß ist und die Schreibsyntax sehr standardisiert ist, müssen wir beim Hinzufügen einer Schnittstelle diese manuell im IServiceCollection-Container hinzufügen, damit die Schnittstelle in den Konstruktor eingefügt werden kann. Das Scrutor-Tool ist für uns sehr praktisch, um es automatisch gemäß unserer Regelkonfiguration hinzuzufügen.

Scrutor

Microsoft.Extensions.DependencyInjection für das Scannen und Dekorieren von Erweiterungen.

Quellcode-Adresse:Der Hyperlink-Login ist sichtbar.

Rezension

Rückblickend auf die Dienstregistrierung sind die drei Arten der Singleton-Injektion wie folgt:

Dienstregistrierung

Angenommen, du hast eine Code-Struktur wie diese:

Schnittstellendefinitionen
öffentliche Schnittstelle IUserService { }
öffentliche Schnittstelle IOrderService { }

Implementierungsklasse
öffentliche Klasse UserService : IUserService { }
öffentliche Klasse OrderService : IOrderService { }

vor

Die Registrierung ist einzeln erforderlich, und der Code lautet wie folgt:

Oder schreibe deine eigene Methode und registriere sie durch Reflexion (Tatsächlich ist Scrutor auch durch Reflexion), wie folgt:

danach

Scrutor macht es sehr praktisch, Assemblies zu scannen, insbesondere um mehrere Serviceklassen automatisch zu registrieren (z. B. UserService als IUserService). Die Paketabhängigkeiten sind wie folgt:

Der Code lautet wie folgt:

Auslegung:
  • . FromAssemblyOf<UserService>(): Spezifiziert die Assembly an, die gescannt werden soll.
  • . AddClasses(): Scannt alle Klassen im Assemblerset.
  • . AsImplementInterfaces(): Registriert automatisch Schnittstellen für diese Klassen, sobald sie implementiert werden.
  • . WithScopedLifetime(): Setze die Lebensdauer auf Scoped, was auch WithTransientLifetime() oder WithSingletonLifetime() sein kann.

(Ende)




Vorhergehend:.NET/C# wandelt PDFs basierend auf ImageMagick, GhostScript in Bilder um
Nächster:Alibaba Cloud mountet OSS im Linux-Systemverzeichnis
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