ASP.NET HttpContext.GetLocalResourceObject() throws exception InvalidOperationException

Disons que nous avons une telle structure du site:

App_LocalResources

      |- A. aspx.resx

      |- B. aspx.resx

A. aspx

B. aspx

Maintenant, j'utilise HttpContext.GetLocalResourceObject("~/A. aspx", "Key1") en A. aspx.cs, et il fonctionne très bien.
Mais si j'utilise HttpContext.GetLocalResourceObject("~/A. aspx", "Key1") dans B. aspx.cs, il déclenche une exception:

La classe de ressource pour cette page n'a pas été trouvé. Veuillez vérifier si le fichier de ressource existe et essayez à nouveau.

Détails De L'Exception: System.InvalidOperationException: La classe de ressource pour cette page n'a pas été trouvé. Veuillez vérifier si le fichier de ressource existe et essayez à nouveau.

Comment puis-je résoudre ce problème? Je veux lire les ressources locales à partir d'une page externe, et je ne veux pas lire le .fichier resx moi-même. Merci 🙂

Mise à JOUR: Dans mon cas, il y a quelques "data.xml" les fichiers(ils sont dans des répertoires différents, et ont des éléments comme <key name='Key1' value='value1' />), et le contenu sera rendu au format html.

Mais les noms de clé dans la data.xml doit être localisée avant de rendu (différents data.xml contiennent des clés différentes).

Par exemple, l'data.xml a un tel élément:

<key name='CategoryId' value='3' />

Dans la suite de la page html, je veux afficher la Catégorie "Id = 3" pour la culture en-US, et "类别=3" pour zh-CN, la culture, etc.

Donc je pense que je peux créer des fichiers d'après le modèle "data.xml.??-??.resx" dans le App_LocalResources dossier, puis utilisez le HttpContext.GetLocalResource() pour chaque data.xml pour récupérer la version localisée de noms de clé. De cette façon, je n'avez pas besoin de lire le fichier xml moi-même. Est-il possible?

InformationsquelleAutor Mouhong Lin | 2010-06-08