Praktyka DI w MVC

Odpowiedz Nowy wątek
2012-12-18 09:14
micc
0

W jaki sposób najlepiej wstrzykiwać repozytoria do klas (używajac constructor injection na poziomie kontrolera czy na poziomie klasy)

przyklad:

a) na poziomie kontrolera

public class TestController : Controller  {

IProductRepository productrepository;
public TestController(IProductRepository prodrep) {
this.productrepository=prodrep;
}

public ActionResult Index() {
TestClass instance = new TestClass(productrepository);
}

}

b) na poziomie klasy

public class TestController : Controller  {
public ActionResult Index() {
TestClass instance = IoC.Resolve<TestClass>();
}
}

Pozostało 580 znaków

2012-12-18 16:21
0

Zobacz jak działa NInject MVC. Używaliśmy go w projekcie i doskonale nadaje się jako DI w projekcie webowym.

edytowany 1x, ostatnio: siararadek, 2012-12-18 16:21
Windosr castle też daje rade. - several 2012-12-18 19:00

Pozostało 580 znaków

2012-12-18 20:43
0

Ja bym raczej wstrzykiwał repozytorium do kontrolera, ale nie rozumiem o co chodzi z punktem b...


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."
Eem, z tego co widzę po kodzie to autor właśnie chce wstrzykiwać repozytorium do kontrolera...? - several 2012-12-18 22:32
Ja rozumiem, że on pyta, czy wstrzykiwać repozytorium do kontrolera, czy zrobić coś innego, czego nie rozumiem. :) - somekind 2012-12-18 22:49
A w sumie tak, dwojako można to rozumieć :) - several 2012-12-19 01:56

Pozostało 580 znaków

2012-12-19 08:38
micc
0

Dlatych co nie zrozumieli o co mi chodziło z pkt. b:

Chodzilo mi o to, że jeżeli obiekty tworzone wewnątrz metod kontrolera korzystają z repozytoriów, to czy przekazywać im w konstruktorze wstrzyknięte interfejsy przez kontroler, czy robić constructor injection bezpośrednio na tych obiektach.

Sprawa jest prosta jeżeli metody kontrolerów korzystają bezpośrednio z repozytoriów ale co jeżeli chcemy przekazać to 'dalej', w kolejne warstwy.

Pozostało 580 znaków

2012-12-19 14:42
0

1) W kontrolerze pole typu repozytorium.
2) Repozytorium wstrzykiwane do kontrolera przez konstruktor.
3) Do innych obiektów wewnątrz metod kontrolera przekazujemy repozytorium z pola.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2012-12-19 19:40
micc
0

I wszystko jasne, thx ;)

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0