Heim  >  Artikel  >  Backend-Entwicklung  >  Was sind AddSingleton, AddScoped und Add Transient C# Asp.net Core?

Was sind AddSingleton, AddScoped und Add Transient C# Asp.net Core?

WBOY
WBOYnach vorne
2023-09-05 22:21:171581Durchsuche

什么是 AddSingleton、AddScoped 和 Add Transient C# Asp.net Core?

Es gibt drei Möglichkeiten, Abhängigkeiten in Startup.cs zu registrieren. dh. AddSingleton, AddScoped und AddTransient.

Singleton hinzufügen

Wenn wir einen Typ als Singleton registrieren, ist während des gesamten Prozesses nur eine Instanz verfügbar. Bewerbung und für jede Anfrage.

Es ähnelt einem statischen Objekt.

Die Instanz wird für die erste Anfrage erstellt und ist überall verfügbar Bewerbung und jede weitere Anfrage.

public void ConfigureServices(IServiceCollection services){
   services.AddSingleton<ILog,Logger>()
}

Scoped hinzufügen

Wenn wir einen Typ als Scoped registrieren, wird durchgehend eine Instanz verwendet Bewerben Sie sich auf Anfrage. Wenn eine neue Anfrage kommt, Neue Instanz erstellt. Durch das Hinzufügen eines Bereichs wird angegeben, dass pro Objekt ein Objekt verfügbar ist fragen.

public void ConfigureServices(IServiceCollection services){
   services.AddScoped<ILog,Logger>()
}

Transient hinzufügen

Wenn wir einen Typ als transient registrieren, wird jedes Mal eine neue Instanz erstellt. Vorübergehend Erstellen Sie neue Instanzen für jeden Dienst/Controller und für jede Anfrage pro Benutzer. +

Benutzer.

Eine pro Anfrage.

anders jedes Mal. Wird verwendet inLeichtes Gewicht, Verhalten jedes Benutzers.
Entsorgt App geschlossen Anfrage beendet Anfrage beendet
als Singleton Eine Umsetzung ist erforderlich. ist anders Verhalten jedes Benutzers.
Leicht und Staatenloser Dienst.

Das obige ist der detaillierte Inhalt vonWas sind AddSingleton, AddScoped und Add Transient C# Asp.net Core?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen