Sobes.tech
Junior — Middle

Ներկայացրեք Dependency Injection կոնցեպտը ASP.NET Core-ում և ինչպես է այն կիրառվում ծրագրերի զարգացման մեջ։

sobes.tech AI

Պատասխան AI-ից

ASP.NET Core-ում կախվածության մուտքագրման (DI) մեխանիզմ է, որը թույլ է տալիս ներդնել կախվածությունները (օրինակ, ծառայություններ, պահոցներ) դասարաններում առանց անհրաժեշտության ձեռքով ստեղծելու։ Սա բարձրացնում է մոդուլայնությունը, թեստավորելիությունը և պարզեցնում է կախվածությունների կառավարումը։

ASP.NET Core-ում DI-ն ինտեգրված է ֆրեյմվորկին և կարգավորվում է Startup դասի ConfigureServices մեթոդում կամ 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-ի օրինակ և փոխանցի այն կոնտրոլերին, ինչը վերացնում է ձեռքով օբյեկտների ստեղծման անհրաժեշտությունը։