Dependency Injection

Mis see on?

See on protsess, mille käigus üks projekt saab kasutada ja muuda klassi teises projektist.
On kolm tüüpi dependency injection’i:

  1. Constructor injection – kõige populaarse injection mis käib konstruktoris.
  2. Property injection – siin sõltuvuse määratakse klassile avaliku atribuuti kaudu
  3. Method injection – see injection sobib siis, kui sõltuvus on vajalik ainult ühe
    konkreetsele meetodile, mitte kogu klassile.

Kuhu classi kirjutad Dependency Injectioni koodi ja mis
meetodi alla?

Dependency injection’i “kutsumine” käib konstruktoris või meetodis, aga registratsioon toimub
Programm.cs’is Main meetodi alla.

private readonly SchoolContext _context;
public CoursesController(SchoolContext context)
{
_context = context;
}

Mis on AddSingelton?

See tähendab, et klass luuakse ainult üks kord ja kasutatakse seda kogu töö ajal.

Mis tähendab AddTransient?

See on AddSingelton’i vastand. Iga kord kui selle sees olev klass kutsutakse, luuakse uus.

Mis tähendab AddScoped?

See tähendab, et klass luuakse üks kord ühe HTTP päringus. Ehk iga kord kui kasutaja, näiteks, laeb
lehe, luuakse uus klass, sest kutsutakse uue HTTP päring.