Wpis z mikrobloga

Zna ktoś może jakieś dobre źródło do zagłębienia się w dependency injection? Wydawało mi się że rozumiem najprostsze przykłady, ale gdy podczas nauki EF Core widzę jak ludzie dodają dbcontext poprzez DI to jakoś się całkiem gubię. Czym tak w ogóle są te zależności, i od czego są te IoC containery? Mówie tutaj o C# i .net core ale działanie DI jest chyba niezależne od technologii?

#programowanie
#naukaprogramowania
#csharp
#dotnet
  • 5
@sf71hrb6: mozesz pokazac (wkleic/podlinkowac) kod, w ktorym DI jest takie zawiłe?

Ogólnie, koncepcja jest ultraprosta, w najprostszej wersji:

internal class Foo {
private readonly Bar dependency;
public Foo(Bar injected_dependency) {
this.dependency = injected_deptendency;
}
}
I tyle. Na dobrą sprawę, nie potrzeba nic innego. Problem polega na tym, że pisanie takiego kodu jest delikatnie czasochłonne, a utrzymanie - dość problematyczne. Gdzieś musisz te wszystkie obiekty tworzyć, niektóre chciałbyś, żeby miały jedną
via Wykop Mobilny (Android)
  • 0
@sf71hrb6: klasa Startup odpowiada za rejestrację w twoim kontenerze. Dzięki temu ServiceProvider możesz ręcznie zwrócić sobie np. zarejestrowana implementację serwisu
@nikolaj92
Musiały minąć dwa dni ale chyba ogarnąłem. W ConfigureServices dodaje aktualną implementacje do kontenera, która później jest wstrzykiwana automatycznie przez framework do konstruktora. Klasa IoC służy w zasadzie tylko do tego aby móc bezpośrednio dostać się do akutalnej implementacji i koniec końców nawet nie jest wykorzystywana w tym przykładzie (robi się coś takiego w realnych projektach?).

Wielkie dzięki wszystkim za pomoc.

Mam jeszcze jedno pytanie, czy jest to jedyny sposób na