Wyobraź sobie, że istnieje klasa Customer
z metodą instancji Load()
.Jak korzystać z iniekcji zależności przy użyciu metod statycznych?
Po wywołaniu metody Load()
pobiera szczegóły zamówienia, np.
var orders = Order.GetAll(customerId, ...);
GetAll()
jest metodą statyczną klasy Order
i parametry wejściowe pola zdefiniowane w klasie Customer
.
Jak widać, Order
jest zależnością klasy Customer
, jednak nie mogę po prostu utworzyć IOrder
i wstrzyknąć go tam, ponieważ interfejsy nie mogą mieć statycznych metod.
Dlatego pytanie brzmi, w jaki sposób mogę wprowadzić wtrysk zależności w tym przykładzie?
Nie chcę, aby GetAll()
metoda instancji, ponieważ jest to metoda statyczna i trzeba zachować to w ten sposób.
Na przykład użyłem klas użytkowych w moim projekcie, z których większość zawiera tylko metody statyczne.
Dzięki, czy te klasy repozytoriów i interfejsy będą częścią warstwy dostępu do danych? Moja klasa Order to jednostka biznesowa odwzorowana z tabeli Order (używając LINQ do SQL). –
@ user133212 to tylko otoki wokół istniejącej funkcji. więc gdziekolwiek ta funkcja logicznie przynależy do warstwy, umieściłbym również opakowanie. –