Wie können wir Dienstabhängigkeiten in den Controller C# Asp.net Core einfügen?

WBOY
Freigeben: 2023-09-10 12:49:02
nach vorne
1216 Leute haben es durchsucht

我们如何将服务依赖注入到控制器C# Asp.net Core中?

ASP.NET Core injiziert Objekte abhängiger Klassen über Konstruktoren oder Methoden Durch Verwendung des integrierten IoC-Containers.

Eingebaute Container werden durch IServiceProvider-Implementierungen dargestellt Die Konstruktorinjektion wird standardmäßig unterstützt. Typen (Klassen), die vom integrierten IoC verwaltet werden Container werden Dienste genannt.

Damit der IoC-Container unsere Anwendungsdienste automatisch einfügt, müssen wir zuerst Sie müssen im IoC-Container registriert werden.

Beispiel

public interface ILog{
   void info(string str);
}
class MyConsoleLogger : ILog{
   public void info(string str){
      Console.WriteLine(str);
   }
}
Nach dem Login kopieren

ASP.NET Core ermöglicht es uns, unsere Anwendungsdienste beim IoC-Container zu registrieren, In der Methode „ConfigureServices“ der Klasse „Startup“. Konfigurieren Sie Dienstmethoden Enthält einen Parameter vom Typ IServiceCollection zum Registrieren der Anwendung Services

Registrieren Sie ILog beim IoC-Container in der Methode „ConfigureServices()“, wie unten gezeigt.

public class Startup{
   public void ConfigureServices(IServiceCollection services){
      services.AddSingleton<ILog, MyConsoleLogger>();
   }
}
Nach dem Login kopieren

Die Add()-Methode der IServiceCollection-Instanz wird zum Registrieren von Diensten bei IoC verwendet Container

Wir haben ILog als Diensttyp und MyConsoleLogger als Instanz angegeben Dadurch wird der ILog-Dienst als Singleton registriert Jetzt erstellt der IoC-Container ein Singleton-Objekt der MyConsoleLogger-Klasse und Unabhängig davon, ob wir das ILog als Konstruktor in den Konstruktor der Klasse einbinden oder es in den Konstruktor der Klasse einfügen, Methodenparameter für die gesamte Anwendung.

Das obige ist der detaillierte Inhalt vonWie können wir Dienstabhängigkeiten in den Controller C# Asp.net Core einfügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage