MC, 11:35 sobota, 05.05.2012 r.
Ilustracja do artykułu: ASP.NET - Resources i rozwiązanie problemu - CS0122: '...' is inaccessible due to its protection level

ASP.NET - Resources i rozwiązanie problemu - CS0122: '...' is inaccessible due to its protection level

Zasoby (Resources) to jedna z tych rzeczy, które najbardziej mi się podobają w technologii .NET. Tym razem tworzę ten wpis z myślą o zanotowaniu sobie rozwiązania problemu z brakiem dostępu do tychże zasobów, w pewnych miejscach kodu.

Kiedy pojawia się ten problem?

Problem "CS0122: 'MojNamespace.Resources' is inaccessible due to its protection level" pojawia się, gdy próbujemy użyć w kodzie strony (nie w jej code-behind) zasobów nie pozwalających na taki sposób ich użycia. Jako że bindowanie danych bezpośrednio w kodzie strony jest bardzo wygodne, a ponadto znacznie bardziej czytelne niż dołączanie ich w odpowiednich metodach z code-behind, warto wiedzieć jak ten problem ominąć.

Jak rozwiązać ten problem?

Rozwiązanie na szczęście jest niezwykle proste i nieinwazyjne. Wystarczy zaznaczyć odpowiedni plik zasobów w okienku Solution Explorer, kliknąć na nie prawym przyciskiem myszy i przejść do właściwości (Properties). Nas interesuje właściwość Custom Tool, która domyślnie posiada wartość: ResXFileCodeGenerator.

Wszystko co musimy zrobić to zamienić tę wartość na PublicResXFileCodeGenerator.

Upubliczni to nasze zasoby do użytkowania również w kodzie strony

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!

Imię:
Treść: