Sobes.tech
Junior — Middle

Paaiškinkite Dependency Injection koncepciją ASP.NET Core ir kaip ji taikoma programų kūrime.

sobes.tech AI

Atsakymas iš AI

ASP.NET Core'e priklausomybių injekcija (DI) yra mechanizmas, leidžiantis įklijuoti priklausomybes (pvz., paslaugas, saugyklas) į klases be jų rankinio kūrimo. Tai didina modulinius gebėjimus, testuojamumą ir supaprastina priklausomybių valdymą.

ASP.NET Core DI yra įmontuotas į karkasą ir konfigūruojamas ConfigureServices metodo Startup klasėje arba Program.cs.

Pavyzdys registracijos ir naudojimo paslaugos:

// Paslaugos sąsaja
public interface IMessageService {
    string GetMessage();
}

// Paslaugos įgyvendinimas
public class MessageService : IMessageService {
    public string GetMessage() => "Sveiki iš DI!";
}

// Registracija `ConfigureServices`
public void ConfigureServices(IServiceCollection services) {
    services.AddTransient<IMessageService, MessageService>();
}

// Naudojimas per konstruktorių
public class HomeController : Controller {
    private readonly IMessageService _messageService;
    public HomeController(IMessageService messageService) {
        _messageService = messageService;
    }

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

Taip ASP.NET Core automatiškai sukurs MessageService egzempliorių ir perduos jį į kontrolerį, išvengiant rankinio objektų kūrimo.