asp.net MVC - wie man komplette lokale und Globale Ressourcen
Ich bin der Lokalisierung der Anwendung und müssen JSON-Repräsentation von lokalen und globalen Ressourcen für die JS-Teil der Anwendung für alle Ansichten. Meine aktuelle Idee ist, ich würde implementieren, die HtmlHelper-Erweiterung Methoden wie GetLocalResourcesJSON/GetGlobalResourcesJSON sollte kodiere alle Ressourcen-Schlüssel+Werte und kehren Sie JSON-codierte string (würd ich implementieren eine caching).
Im moment bin ich in der Lage, zum abrufen von einzelnen, spezifischen Schlüssel von globalen oder lokalen Ressource, die die Zugehörigkeit zu der aktuellen Ansicht (mit httpContext.GetGlobalResourceObject/GetLocalResourceObject), aber ich bin nicht in der Lage, um herauszufinden, wie das abrufen ganzen resource-Objekt und Durchlaufen alle Schlüssel+Werte. Gibt es irgendeine Methode, wie dies zu erreichen?
sieht es aus wie ResourceProviderFactory kann sein, das der Schlüssel zu diesem problem, aber es ist nicht öffentlich zugänglich, überall. Ich könnte instanziieren ResourceExpressionBuilder und reflektion verwenden, um abzurufen, die der Anbieter mit GetLocal/GlobalResourceProvider () - Methoden, aber ich weiß nicht, wie mit der spiegelung hier...
InformationsquelleAutor Buthrakaur | 2009-06-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie einen halt bekommen können von ResourceManager, können Sie die GetResourceSet () - Methode zum zurückgeben aller lokalisierte strings für eine bestimmte Kultur.
App_ GlobalResources wird dann kompiliert in der "Ressourcen" - namespace und Sie können auf der ResourceManager gibt (also Ressourcen.Allgemeinen.ResourceManager) Für App_ LocalResources es ist ein bisschen kniffliger, das ist einer der Gründe, warum ich eher nicht verwenden App_ LocalResources. Siehe diese [post -] [1] für eine mögliche Lösung.
Gibt:
[1]: http://blog.mattweber.name/?p=39"ASP.NET - Werte aus Resx-Datei"
InformationsquelleAutor Talljoe
im moment habe ich es gelöst mit Reflexion so: var resourceManager = ResourceExpressionBuilder.GetLocalResourceProvider(virtualPath).CreateResourceManager(); und als Ressourcen-Manager.GetResourceSet() zur Iteration über alle Ressourcen-Objekte. Ich weiß nicht, wie diese dirty Lösung aber ;(
InformationsquelleAutor Buthrakaur