Sobes.tech
Junior — Middle

Тавзеҳ диҳед дар бораи консепсияи Dependency Injection дар ASP.NET Core ва чӣ гуна дар таҳияи барномаҳо истифода мешавад.

sobes.tech AI

Ҷавоб аз AI

Дархостгари вобастагиҳо (DI) дар ASP.NET Core як механизм аст, ки имкон медиҳад, вобастагиҳоро (масалан, хизматрасониҳо, анборҳо) ба синфҳо бе зарурати онҳоро дастӣ сохтани онҳо ворид кард. Ин модулӣ, тестшавандагӣ ва идоракунии вобастагиро содда мекунад.

Дар ASP.NET Core, DI ба чаҳорчуба дохил карда шудааст ва дар усули ConfigureServices дар синфи Startup ё дар Program.cs танзим мешавад.

Масалан барои сабт ва истифодаи хизматрасонӣ:

// Интерфейси хизматрасонӣ
public interface IMessageService {
    string GetMessage();
}

// Иҷрои хизматрасонӣ
public class MessageService : IMessageService {
    public string GetMessage() => "Салом аз DI!";
}

// Сабт дар ConfigureServices
public void ConfigureServices(IServiceCollection services) {
    services.AddTransient<IMessageService, MessageService>();
}

// Истифода тавассути конструктор
public class HomeController : Controller {
    private readonly IMessageService _messageService;
    public HomeController(IMessageService messageService) {
        _messageService = messageService;
    }

    public IActionResult Index() {
        var message = _messageService.GetMessage();
        return Content(message);
    }
}

Бинобар ин, ASP.NET Core автоматӣ як нусхаи MessageService-ро месозад ва онро ба контроллер мегузаронад, ки зарурати сохтани объектҳоро аз байн мебарад.