Powiedzmy, że mam dwa kontrolery: ControllerA i ControllerB. Oba te kontrolery przyjmują jako parametr IFooInterface. Teraz mam 2 implementacje IFooInterface, FooA i FooB. Chcę wprowadzić FooA w ControllerA i FooB w ControllerB. Można to łatwo osiągnąć w programie Ninject, ale przechodzę do prostego wtryskiwacza ze względu na lepszą wydajność. Jak mogę to zrobić w Simple Injector? Należy pamiętać, że ControllerA i ControllerB znajdują się w różnych zespołach i są ładowane dynamicznie.Wstrzykiwanie warunkowe Simple Injector
Dzięki
To pytanie ma pochodzić kilka razy na Stackoverflow, a to jest mój obowiązek kwestionowania takiego projektu. Chociaż taki projekt nie zawsze jest zły, należy uważać, aby nie naruszać zasady Liskov Substitution Principle. Pytanie brzmi: czy ControllerA nadal działa, gdy jest wstrzykiwany FooB, czy też ma przerwy? Jeśli się zepsuje, naruszasz LSP, co oznacza, że FooA i FooB powinny implementować inny interfejs. – Steven
@Thanks thanks, dałeś mi coś do myślenia :) – Davita
@ Jeszcze jedna myśl, ControllerA nadal będzie działać po wstrzyknięciu FooB, z tej perspektywy, w zasadzie mogę skrócić ilość kontrolerów. Problem polega na tym, że kontroler przesyła IFooInterface z niektórymi danymi z bazy danych, która jest inna dla FooA i FooB, więc powinna wiedzieć, które dane wybrać z bazy danych. – Davita