2014-07-18 18 views
17

Buduję witrynę ASP.NET MVC 4 z C#. Lokalizuję wszystkie moje ciągi statyczne w pliku zasobów (.resx). Używam interfejsu Visual Studio do tworzenia i zapełniania pliku zasobów. W moim index.cshtml widzenia, staram się użyć jednego z ciągów z pliku zasobów, takich jak to:Niedostępne, wewnętrzne, pliki zasobów?

@using Namespace.To.RESX.File 

... 

<h1>@EN_US.GLOBAL_NAME</h1> 
<h2>&ldquo;@EN_US.GLOBAL_SLOGAN&rdquo;</h2> 

... 

mogę skompilować aplikację, ale pojawia się błąd wykonania kiedy załadować stronę, mówiąc:

Compiler Error Message: CS0122: 'Namespace.To.RESX.File.EN_US' is inaccessible due to its protection level 

Przeglądając plik projektanta resx, widzę klasę i wszyscy jej członkowie są oznaczeni jako internal. Zupełnie rozumiem, co robią modyfikatory kontroli dostępu C#, jak działają, itp ... ale nie rozumiem, dlaczego Visual Studio ograniczyłoby dostęp do takich elementów zasobów jak ten.

Dlaczego Visual Studio to zrobi? Czy istnieje (łatwy) sposób zmiany tych modyfikatorów kontroli dostępu lub czy całkowicie brakuje mi punktu plików zasobów?

Odpowiedz

44

Tak ... nie widziałem tego. Otworzyć plik zasobów w trybie projektowania i zmienić modyfikatora dostępu (przynajmniej na VS 2013):

enter image description here

Powiązane problemy