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.
public interface ILog{ void info(string str); } class MyConsoleLogger : ILog{ public void info(string str){ Console.WriteLine(str); } }
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>(); } }
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!