Sobes.tech
Junior — Middle

Dasturiy tizimlarni ishlab chiqishda bog'liqliklarni kiritish uchun qanday vosita ishlatiladi?

sobes.tech AI

AIdan javob

Dasturiy tizimlarni ishlab chiqishda bog‘liqliklarni integratsiya qilish uchun ko‘pincha Dependency Injection (DI) naqshidan foydalaniladi — bog‘liqliklarni in'ektsiya qilish.

C# da DI ni amalga oshirish uchun odatda maxsus konteynerlar (IoC konteynerlari) ishlatiladi, ular obyektlarning yaratilishini va ularning hayot aylanishini, shuningdek, ularning bog‘liqliklarini boshqaradi.

C# da DI uchun mashhur vositalar:

  • Microsoft.Extensions.DependencyInjection — .NET Core va .NET 5+ ga o‘rnatilgan konteyner
  • Autofac — kuchli va moslashuvchan konteyner
  • Ninject
  • Unity

ASP.NET Core da o‘rnatilgan DI ni ishlatish misoli:

public interface IMessageService
{
    void Send(string message);
}

public class EmailService : IMessageService
{
    public void Send(string message)
    {
        Console.WriteLine($"Email yuborish: {message}");
    }
}

// Startup.cs da
public void ConfigureServices(IServiceCollection services)
{
    services.AddTransient<IMessageService, EmailService>();
}

// Kontroler yoki boshqa sinfda
public class HomeController
{
    private readonly IMessageService _messageService;

    public HomeController(IMessageService messageService)
    {
        _messageService = messageService;
    }

    public void Notify()
    {
        _messageService.Send("Salom!");
    }
}

Shu tarzda, DI bog‘liqliklarni yaratishni ularning foydalanishidan ajratishga imkon beradi, bu esa kodning test qilish va saqlash imkoniyatlarini yaxshilaydi.