Lista z typami/klasami jaki klucze ? (C#)

0

Cześć

Chcę utworzyć listę, albo inną kolekcję z typami/kalsami jaki klucze. Potrzebne mi to, bo chcę utworzyć cache w aplikacji MVC4 dla słowników, rozumianych jako dane z bazy, które się rzadko zmieniają (np. słownik krajów). Każdy rodzaj słownika jest w aplikacji reprezentowany przez oddzielną klasę, które nie mają wspólnej klasy bazowej. W związku z tym wymyśliłem, że chciałbym zrobić List<MemoryCache> i jako klucze mieć te nazwy klas słowników. Jak to zrobić lub jak osiągnąć taki efekt w inny sposób?

Z góry dzięki,
Pozdrawiam,
Michał

0

czy

Dictionary<string,Class>

jest wystarczające ?

Dictionary<string,Object>

na pewno wystarczy . a poprzez Marshaling wyciągniesz typ obiektu i zrzutujesz sobie na interesujący typ.
https://www.google.pl/search?q=c%23+marshaling&oq=c%23+marshaling&aqs=chrome..69i57j69i58j0l4.7676j0j7&sourceid=chrome&espv=2&es_sm=93&ie=UTF-8#q=c%23+get+type+from+object

0

tzn. jak dokładnie? Dictionary<string,Class> nie jest chyba poprawne, musisz podać typ. Ze słowem class się nie kompiluje.

2

Dlaczego jako klucze chcesz mieć nazwy, a nie typy? Możesz utworzyć słownik Dictionary<Type, object> i dodawać do niego elementy przez dictionary.Add(typeof(MojaKlasa), jakiśTamObiekt).

A poza tym - gdzie chcesz ten swój cache trzymać? I czemu nie użyjesz jakiegoś wbudowanego mechanizmu?

0

Bardziej Dictionary<string, List<object>>, czyli kluczem jest nazwa słownika, a wartością lista elmentów słownika.
Teraz pytanie jak, do czego chcesz używać tych słowników? Bo rozwiązań jak wybrać konkretny słownik i dalej coś z nim zrobić, chociażby uzyskać interesującą cię np. List<Country> itp. może być wiele. Pytanie czy elemeny w słowniku także nie mają unikalnych kluczy?
Opisz szerzej swoje rozwiązanie, dostaniesz sensowniejszą odpowiedź.

0

somekind - Twoja propozycja działa, dzięki. Co do wbudowanych mechanizmów - może muszę doczytać - jedyny mechanizm cache'owania jaki znam jest ten z ASP, a - wcześniej trochę nieprecyzyjnie się wyraziłem - aplikacja to faktycznie MVC4, ale klasa obsługująca słowniki mieści się w innym projekcie niż projekt aplikacji webowej. Posiada metody do odczytu słownika i do jego aktualizacji, więc dodanie tam takiego cache'a wydaje mi się bardzo proste. Jaki wbudowany mechanizm byście polecili?

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