Unzugänglich, Interne Ressource-Dateien?
Baue ich eine ASP.NET MVC 4 Webseite mit C#. Ich bin lokalisieren alle meine statischen strings in der Ressource-Datei (.resx
). Ich benutze die Visual Studio-Schnittstelle zum erstellen und Auffüllen der Ressourcen-Datei. In meinem index.cshtml
Ansicht, ich versuche es mal mit einem der strings aus der resource-Datei, wie hier:
@using Namespace.To.RESX.File
...
<h1>@EN_US.GLOBAL_NAME</h1>
<h2>“@EN_US.GLOBAL_SLOGAN”</h2>
...
Kann ich die Anwendung kompilieren, aber ich bekomme einen runtime error wenn ich die Seite geladen werden, nämlich:
Compiler Error Message: CS0122: 'Namespace.To.RESX.File.EN_US' is inaccessible due to its protection level
Suchen in der resx designer-Datei, die ich sehen kann, die Klasse und alle Ihre Mitglieder sind als solche gekennzeichnet internal
. Ich völlig verstehen, was der C# access control modifiers machen, wie Sie funktionieren, etc... aber ich verstehe nicht, warum Visual Studio würde beschränken Sie den Zugriff auf die Ressource Mitglieder wie dieses.
Warum sollte Visual Studio das tun? Gibt es eine (einfache) Möglichkeit, diese zu ändern access control modifiers, oder bin ich fehlt der Punkt, Ressource-Dateien komplett?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Yep... habe es nicht. Öffnen Sie die Ressource-Datei in design-Modus und ändern Sie den zugriffsmodifizierer (zumindest auf VS 2013):
Für den Mac /visual studio 2017 Jungs Öffnen .Designer-Datei und machen Sie Ihre Klassen public :
Ordner:
Änderung des internen öffentlichen und sparen:
Update: Es Standardmäßig wieder auf "intern". jedesmal, wenn Sie änderungen, die Sie wollen, um diese änderung aufgeführt hier
Klicken Sie rechts auf Ressource-Datei (
resource.resx
) => Eigenschaften.Benutzerdefiniertes Tool => Ändern zu
PublicResXFileCodeGenerator