Generyczna metoda i klasa

Odpowiedz Nowy wątek
2014-12-30 17:05
Czarny Mleczarz
0

Witam,

Mam problem, otóż jest taki kod:

this.operationData = Kernel.Get<DictionaryConcept, IOperationData>();

Zwraca on obiekt o takim typie danych jaki podano w drugim parametrze. Pierwszy parametr to klucz, po którym szukam odpowiedniego obiektu. Jest to moje rozwiązanie wzorca wstrzykiwania zależności.

Kod ten jednak znajduje się w klasie nadrzędnej:

    public class IdentifyData
    {
        private IOperationData operationData;
 
        public IdentifyData()
        {
            this.operationData = Kernel.Get<DictionaryConcept, IOperationData>();
        }

Jak widać klasa jest ogólna, zaś w funkcji testowo podaję dokładną klasę, która dziedziczy po tej na skrypcie.
Jak mogę w metodzie "Kernel.Get" Podać typ danych aktualnej klasy.
Chodzi mi o coś takiego:

this.operationData = Kernel.Get<this.GetType(), IOperationData>();

Konkretnie pierwszy parametr jest zmienny i jest klasą dziedziczącą. Jak mogę przekazać dynamicznie informacje o tym metodzie generycznej?

Pozdrawiam.

Pozostało 580 znaków

2014-12-30 17:18
0

Nie możesz. Musisz napisać metodę, która przyjmie argument typu Type.


"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

2014-12-30 17:22
Czarny Mleczarz
0

Ok, bardzo dziękuję.

Pozostało 580 znaków

2014-12-30 20:48
0

Inna sprawa że w takiej postaci:

 public class IdentifyData
    {
        private IOperationData operationData;
 
        public IdentifyData(IOperationData operationData)
        {
            this.operationData = operationData;
        }
    }

ten kod wygląda dużo lepiej. Oprócz wyglądu ma też wiele innych zalet, poszukaj i poczytaj jakich.


szogun

Pozostało 580 znaków

2014-12-31 08:38
gsfdgxb
1
Czarny Mleczarz napisał(a):

Jest to moje rozwiązanie wzorca wstrzykiwania zależności.

to zaprzeczenie wzorca wstrzykiwania zależności, wygląda raczej na wzorzec service locatora
wstrzykiwanie zależności zwalnia właśnie od tego typu problemów

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