„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich ASP.NET -Core -Dienste in "configureservices" manuell beheben?

Wie kann ich ASP.NET -Core -Dienste in "configureservices" manuell beheben?

Gepostet am 2025-03-22
Durchsuche:405

How Can I Manually Resolve ASP.NET Core Services in `ConfigureServices`?

an den ASP.Net Core -Dienst in konfiguresservices manuell analysieren

Die

configureservices Methode in ASP.NET CORE, mit der Abhängigkeitsinjektionscontainer konfiguriert werden, bietet keine Methode zum direkten Parsen von Diensten. Um den Service manuell von dieser Methode zu analysieren, ist eine alternative Methode erforderlich.

Service Provider Mode

Um Dienste zu analysieren, verwendet ASP.net Core das Dienstanbietermuster. Nachdem die Dienstsammlung erstellt wurde, wird sie in eine iServiceProvider -Stanz umgewandelt, sodass der Dienst analysiert werden kann.

Injection Service Provider

] Eine Möglichkeit, einen Dienst zu analysieren, besteht darin, die

iServiceProvider Instanz in den Konstruktor der startup -Klasse zu injizieren. Dieser Ansatz bietet jedoch nur Zugriff auf die begrenzten erforderlichen Dienste, die von der Hosting -Ebene injiziert werden.

verwenden ApplicationsServices ]

in der

configure Methode enthält die iApplicationBuilder die Anwendungsservices Eigenschaft, die einen Dienstleister enthält, der auf alle registrierten Dienste zugreifen kann.

public void Configure(IApplicationBuilder app)
{
    var serviceProvider = app.ApplicationServices;
    var fooService = serviceProvider.GetService();
}

bauen Intermediate Service Provider ]

Um einen Dienst in der

configureservices -Methode zu analysieren, können Sie einen Zwischendienstanbieter aus einer teilweise erstellten Sammlung von Diensten erstellen. Dies schließt jedoch nur Dienste ein, die zuvor registriert sind.

public void ConfigureServices(IServiceCollection services)
{
    services.AddSingleton();

    var sp = services.BuildServiceProvider();
    var fooService = sp.GetService();
}

meiden manuelle Analyse ]

Manuelle Parsing -Dienste werden normalerweise nicht empfohlen, da sie gegen das Abhängigkeitsinjektionsprinzip verstößt. Verwenden Sie stattdessen die Injektion oder verwenden Sie die Injektion von Dienstanbietern in der

-Methode konfigurieren Sie .

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3