Mit ResourceManager
Ich versuche, die Ressourcen-Manager in einer C# - Klasse, aber weiß nicht, was als Ersatz für den basename beim erstellen einer neuen Instanz der ResourceManager-Klasse.
Habe ich ein separates Projekt, das die Ressource enthält Dateien, auf welche verwiesen durch mein Projekt oben genannt, wie die folgenden:
•Ressourcen.resx
•Ressourcen."es-es".resx
Wenn ich ein code-snippet wie folgt aus, was soll ich Ersatz für den basename, wenn ich verwenden möchten, die englische oder Spanische version von den Ressourcen?
ResourceManager RM = new ResourceManager(basename,Assembly.GetExecutingAssembly());
Habe ich versucht, den Ansatz vorgeschlagen, der von Tom, aber bin immer die berüchtigte Fehlermeldung "Konnte keine entsprechenden Ressourcen für die angegebene Kultur oder die Neutrale Kultur".
Habe ich 2 Projekte auf dem project YeagerTech ist eine web-Anwendung-Projekt-und Projekt-YeagerTechResources ist ein Projekt (in der gleichen Lösung) enthält alle Ressourcen. Projekt YeagerTech hat eine Referenz zu YeagerTechResources.
Ich habe die folgende syntax beim erstellen meines Resource Manager:
ResourceManager RM = new ResourceManager("YeagerTechResources.Resources", Assembly.GetExecutingAssembly());
Offensichtlich, es ist falsch.
Den Ressource-Dateien in den YeagerTechResources Projekt haben Ihre BuildAction auf Eingebettete Ressource festgelegt.
Den Namen von meinem Ressource-Dateien sind: - Ressourcen.resx und Ressourcen."es-es".resx.
Wenn jemand kann einfach sagen Sie mir die genaue syntax zu verwenden, basiert auf meiner Projekt-und Ressourcen-Datei-Namen bei der Instanziierung des Ressource-manager, würde ich es sehr zu schätzen...
Ich habe alles getan, was ich denken kann, diese zu lösen und kann nicht....
Dies ist mein letzter Versuch, es zu beheben, hier...
ResourceManager RM = new ResourceManager("YeagerTechResources.Resources", Assembly.GetExecutingAssembly());
Ich erhalte die folgende Fehlermeldung nach dem ausführen von den folgenden code:
sb.Append(RM.GetString("RegisterThanks"));
Konnten keine entsprechenden Ressourcen für die angegebene Kultur oder die Neutrale Kultur. Stellen Sie sicher, "YeagerTechResources.Ressourcen.Ressourcen" wurde korrekt eingebettete oder verknüpfte in der Montage "YeagerTech" zur compile-Zeit, oder, dass alle Satelliten-Assemblys erforderlich sind belastbar und voll signiert.
Habe ich eine Lösung und zwei Projekte. Ist die web-Projekts und die andere ist die Ressourcen-Projekt. Die Ressourcen-Projekt enthalten ist, als eine Referenz in der web-Projekt.
Ich bin in der Lage, die Ressourcen im HTML-markup mit absolut keine Probleme, aber wenn es um den C# - code in den Controller, ich erhalte immer den oben genannten Fehler.
Jede Hilfe für die genaue syntax, die ich brauche, basierend auf meinen Projekten würde sehr geschätzt werden.
InformationsquelleAutor der Frage sagesky36 | 2012-01-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es auf überraschend einfache Weise des Lesens Ressource durch eine Zeichenkette:
Es ist eine saubere und elegante Lösung für das Lesen von Ressourcen durch Tasten, wo "dot-notation" nicht verwendet werden kann (zum Beispiel, wenn die Ressource Schlüssel wird in der Datenbank persistiert).
InformationsquelleAutor der Antwort Landeeyo
Die quick-and-dirty Weg, um zu überprüfen, welche Zeichenfolge, die Sie benötigen, Blick auf die erzeugte .Ressourcen-Dateien.
Ihre .Ressourcen generiert werden, in der Ressourcen Projekte obj/Debug - Verzeichnis. (wenn nicht, klicken Sie rechts auf .resx-Datei im Projektmappen-explorer und klicken Sie auf "Benutzerdefiniertes Tool Ausführen" zu generieren .Ressourcen-Dateien)
Navigieren Sie zu diesem Verzeichnis und haben einen Blick auf die Dateinamen. Sie sollten sehen, eine Datei der Endung XYZ.Ressourcen. Kopie, die mit dem Namen und entfernen Sie die nachfolgende .Ressourcen, und das ist die Datei, die Sie geladen werden sollte.
Zum Beispiel in meinem obj/Bin-Verzeichnis habe ich die Datei:
MyLocalisation.Eigenschaften.Ressourcen.Ressourcen
Wenn die Ressource-Dateien sind in der gleichen Klasse library/Application würde ich die folgende C# -
Jedoch, wie es klingt wie Sie sind mit der Ressourcen-Datei von einem separaten Class library/Application werden Sie wahrscheinlich wollen,
InformationsquelleAutor der Antwort SinOB
Diese SO beantworten könnte in diesem Fall helfen.
Wenn die main Projekt verweist bereits auf die Ressource Projekt, dann könnten Sie einfach explizit die Arbeit mit der generierten Ressourcen und der Klasse in Ihrem code und den Zugriff auf Ihre
ResourceManager
. Daher, etwas entlang der Linien von:InformationsquelleAutor der Antwort superjos
Laut der MSDN-Dokumentation hierDie basename-argument gibt "Die root-name der Ressource Datei ohne Erweiterung aber mit allen voll qualifizierten namespace-Namen. Zum Beispiel der root-name für die Ressource-Datei mit dem Namen "MyApplication".MyResource.en-US.Ressourcen" ist ""MyApplication".MyResource"."
Der Ressourcen-Manager wird automatisch versuchen, die zum abrufen der Werte für die aktuelle UI-Kultur.
Wenn Sie möchten, um die Verwendung einer bestimmten Sprache, die Sie benötigen, um das aktuelle UI-Kultur auf die Sprache, die Sie verwenden möchten.
InformationsquelleAutor der Antwort Tom Lint
Ging ich über einem ähnlichen Problem.
Wenn Sie überlegen, Ihre "YeagerTechResources.Ressourcen", es bedeutet, dass Sie Ihre Ressourcen.resx ist im root-Ordner Ihres Projektes.
Vorsichtig sein, um den vollständigen Pfad z.B. : "Projekt\" Unterordner\Datei[.resx]" der ResourceManager-Konstruktors.
InformationsquelleAutor der Antwort leguminator