DI do metody w controllerze

DI do metody w controllerze
0

Czesc czy mozliwe jest DI do metody w controllerze ? Czyli chodzi o takei cos

Kopiuj
        [Route("example")]
        [HttpGet]
        public IHttpActionResult GetChartsByFilter(SomeService SomeService )
        {
            return Json(SomeService .TotalCount(1));
        }

Wyczytalem cos o atrybucie FromServices, ale nie znajduje mi taki namespace.

Aplikacji w asp .net webapi

Pozdrawiam

EP
  • Rejestracja:prawie 8 lat
  • Ostatnio:ponad 6 lat
  • Postów:122
1

Powinieneś to robić w konstruktorze raczej.


Wenn ist das Nunstück git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!
0

W konstruktorze dziala bez problemu, ale nie wiem czy jest sens pakowac tyle zalznosci do konstruktora, dlatego myslalem o metodzie w tym przypadku.

EP
  • Rejestracja:prawie 8 lat
  • Ostatnio:ponad 6 lat
  • Postów:122
1

Jeżeli masz za dużo zależności, to znaczy że łamana jest zasada SRP => podziel kontroler na kilka mniejszych, realizujących bardziej konkretne zadania. Dzięki czemu a) będzie mniej zależności, b) kod będzie czytelniejszy, bo krótszy i niełamiący SRP :P


Wenn ist das Nunstück git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!
0

Tzn, nie jest znowuz nie wiadomo ile i nie lamie zasad SRP, ale potrzebuje tego jednego serwisu, a uzyje tylko to w jednej metodzie i dlatego chcialem to wsadzic do metody. Da sie czy sie nie da? :p
Zrobilem z [InjectionMethod] na debugerze niby zlapal klase ale zaraz potem jest nullem.

somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:5 dni
  • Lokalizacja:Wrocław
4

Wstrzykiwać możesz przez konstruktor albo przez właściwości. To dość oczywiste, bo to jest operacja na poziomie konfigurowania dopiero co utworzonego obiektu, a nie wywoływania na nim metod.
Jeśli chcesz mieć coś tylko w jednej metodzie, to przekaż to jako argument jej wywołania. Tylko oczywiście bez sensu tak przekazywać zależność, a nie dane.

Jest jakaś przyczyna dla której bohatersko walczysz z problemem, który sobie wymyśliłeś? Bo tak ogólnie, to tysiące programistów na świecie nie mają jakoś problemu z posiadaniem zależności używanych w tylko jednej metodzie.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.