Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah kita boleh menyuntik pergantungan perkhidmatan ke dalam pengawal C# Asp.net Core?

Bagaimanakah kita boleh menyuntik pergantungan perkhidmatan ke dalam pengawal C# Asp.net Core?

WBOY
WBOYke hadapan
2023-09-10 12:49:021175semak imbas

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

ASP.NET Core menyuntik objek kelas bergantung melalui pembina atau kaedah Dengan menggunakan bekas IoC terbina dalam.

Bekas terbina dalam diwakili oleh pelaksanaan IServiceProvider Suntikan pembina disokong secara lalai. Jenis (kelas) yang diuruskan oleh IoC terbina dalam Bekas dipanggil perkhidmatan.

Agar bekas IoC menyuntik perkhidmatan aplikasi kami secara automatik, kami mula-mula Mereka perlu didaftarkan ke bekas IoC.

Contoh

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

ASP.NET Core membolehkan kami mendaftar perkhidmatan aplikasi kami dengan bekas IoC, Dalam kaedah ConfigureServices kelas Startup. Konfigurasikan kaedah perkhidmatan Mengandungi parameter jenis IServiceCollection untuk mendaftarkan aplikasi services

Daftar ILog dengan bekas IoC dalam kaedah ConfigureServices(), seperti yang ditunjukkan di bawah.

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

Kaedah Add() bagi contoh IServiceCollection digunakan untuk mendaftar perkhidmatan dengan IoC Bekas

Kami telah menetapkan ILog sebagai jenis perkhidmatan dan MyConsoleLogger sebagai contohnya Ini akan mendaftarkan perkhidmatan ILog sebagai singleton Kini, bekas IoC akan mencipta objek tunggal kelas MyConsoleLogger dan Sama ada kita memasukkan ILog sebagai pembina dalam pembina kelas atau menyuntiknya ke dalam pembina kelas, Parameter kaedah untuk keseluruhan aplikasi.

Atas ialah kandungan terperinci Bagaimanakah kita boleh menyuntik pergantungan perkhidmatan ke dalam pengawal C# Asp.net Core?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam