tak, z tym ze zwroc uwage ze raz ze bedzie N razy wolniejsze przez sam fakt uzycia reflekcji, a dwa - umieszczajac sobie wartosc stringa w atrybucie 'description' automatycznie odcinasz sobie droge do np. konstruowania go w locie (odmiana, przypadki, itpwtf) czy dynamicznej lokalizacji w oparciu o CurrentCultureInfo, itp itd
No tak, ale jak napisał autor: "jak to elegancko zrobić, tak żeby dodatkowo środowisko VS podpowiadało zawartość tej listy stringów, jak robi to w przypadku zdefiniowanych już klas lub metod?". To to jest rozwiązanie tego problemu. Lokalizacja w oparciu o CurrentCultureInfo też wydaje mi się możliwa, chociaż rzeczywiście ciut trudniejsza.
poza tym... nie widze nic niebezpieczniejszego we switch/case nad wpisywanie stringa w description. dokladnie taka sama mozliwosc popelnienia bledu!
No ja unikam jednak jakoś wielokrotnego caseowania.
i... zeby przypieczetowac.. atrybuty nie zostaly zaprojektowane by trzymac DANE. one zostana żywcem wyryte w pozniejszym skompilowanym assembly. atrybuty sa po to, by umieszczac w nich metadane na temat konstrukcji obiektow/pol/etc, w tym np. opisujace stale zachowania, powiazania, informacje dla automatow przetwarzajacych kod czy assembly'ie itp. stad,
A czy to źle? Ja rozumiem, że to by był kawałek większego systemu i byłyby potrzeby wskazujące na wady tego rozwiązania, ale do prościutkich rzeczy nie trzeba tego rozszerzać.
Twoj przyklad ma wiec u swoich podstaw powazny blad merytoryczny, ktory moglbys ominac wprowadzajac jeden skok wiecej - stworzyc atrybut ktory bedzie trzymal KLUCZ do tablicy-czy-tez-Resources - a metoda tlumaczaca na string - niech uzywa klucza i wyciaga z tablicy-czy-tez-Resources konkretna, zlokalizowana/przetworzona/etc wartosc.. oczywiscie, malo komu sie chce, ale tak to powinno wygladac
No możliwe. Tak samo możnaby wczytywać tekst ze zdalnej bazy danych gdzie by było tłumaczenie itd. No ale po co? Autor nie pisał raczej o takiej potrzebie. Ale oczywiście w aplikacjach wielojęzycznych takie rozwiązanie będzie idealne jak piszesz. Myślę że pisanie o lokalizacji aplikacji w kontekście pytania autora jest lekką przesadą.
*) Atrybut description nie o pokazywania uzykownikowi koncowemu, tylko dla dewelopera, zeby w designerze w Properties sie opis przeznaczenia tego czegos wyswietlil!
http://msdn.microsoft.com/en-u[...]odel.descriptionattribute.aspx
Atrybut description na polach enumeratora raczej nigdzie się nie przydaje, więc można go spokojnie użyć do tego celu. A jak nie to można też napisać własny Atrybut, ale po co? Czyż nie jest to celowaniem armatą do muchY? :)
pozdr