Computer >> Máy Tính >  >> Lập trình >> C#

Làm cách nào chúng ta có thể đưa dịch vụ phụ thuộc vào bộ điều khiển C # Asp.net Core?

ASP.NET Core chèn các đối tượng của các lớp phụ thuộc thông qua phương thức khởi tạo hoặc phương thức bằng cách sử dụng vùng chứa IoC tích hợp sẵn.

Vùng chứa tích hợp được đại diện bởi triển khai IServiceProvider hỗ trợ chèn phương thức khởi tạo theo mặc định. Các loại (lớp) được quản lý bởi IoCcontainer tích hợp được gọi là dịch vụ.

Để vùng chứa IoC tự động đưa vào các dịch vụ ứng dụng của chúng tôi, trước tiên, chúng tôi cần đăng ký chúng với vùng chứa IoC.

Ví dụ

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

ASP.NET Core cho phép chúng ta đăng ký các dịch vụ ứng dụng của mình với IoC container, trong phương thức ConfigureServices của lớp Startup. Phương thức ConfigureServices bao gồm một tham số của loại IServiceCollection được sử dụng để đăng ký các dịch vụ ứng dụng

Đăng ký ILog với IoC container trong phương thức ConfigureServices () như hình dưới đây.

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

Phương thức Add () của cá thể IServiceCollection được sử dụng để đăng ký dịch vụ với IoCcontainer

Chúng tôi đã chỉ định ILog làm loại dịch vụ và MyConsoleLogger làm thể hiện của nó Điều này sẽ đăng ký dịch vụ ILog dưới dạng singletonN Bây giờ, một vùng chứa IoC sẽ tạo một đối tượng singleton của lớp MyConsoleLogger và đưa nó vào phương thức khởi tạo của các lớp bất cứ nơi nào chúng ta bao gồm ILog như một phương thức khởi tạo hoặc tham số điều chỉnh trong suốt ứng dụng .