Konstruktor kontrollera

0

Gdzie jest odpalany konstruktor kontrolera ? Bo jeśli mam w kontrolerze pole jakiegoś interfejsu i w konstruktorze jest wstrzykiwany obiekt tego interfejsu to gdzie ten konstruktor jest odpalany ?

        private readonly IAccount _account;

        public AccountController(
            IAccount account)
        {
            _account = account;
        }

Gdzie taki konstruktor jest uruchamiany ?

1

Troche maslo maslane. Jesli chodzi Ci gdzie constructor jest odpalany, to tam gdzie go definiujesz :O A jesli Ci chodzi o to, gdzie jest odpalany constructor, ktorego interfejs przekazujesz w parametrze do tego controllera, to pewnie uzywasz jakiej biblioteki typu unity. Link: https://msdn.microsoft.com/en-us/library/dn178463(v=pandp.30).aspx

0

Gdzie tworzony jest obiekt tego kontrolera ? Ponieważ nie wiem gdzie są do niego wstrzykiwane te zależności w kodzie.

0

Obiekt controllera, czy obiekty parametrow ktore mu wstrzykujesz ? Bo to 2 rozne rzeczy. Jesli chodzi Ci o to drugie to wyzej masz link jak to dziala.

0

Pytanie jest o obiekt kontrolera, czego nie rozumiesz?
Jeśli używasz frameworka asp ( a zakladam że tak ) to prawdopodobnie obiekt kontrolera jest tworzony
z uzyciem jakiegos kontenera dependency injection który tworzy instancje kontrolera podając mu wymagane obiekty do konstruktora.

Poczytaj troche o Depencency injection i Inversion of Control.

0

Ten konstruktor jest wywoływany w kontenerze DI

1

A jak nie ma kontenera DI, to co, kontrolery się nie tworzą?

Domyślnie kontrolery są tworzone przez DefaultControllerFactory. Jeśli chcesz użyć w aplikacji jakiegoś kontenera DI, to musisz też użyć wtyczki łączącej ten kontener z frameworkiem MVC, aby kontrolery były tworzone wraz z zależnościami. Domyślna implementacja nie wspiera kontrolerów, które nie posiadają bezparametrowych konstruktorów.

0

W ASP core domyślnie się tworzą właśnie w kontenerze

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