10
votes

Comment accéder à GETGLOBALRESOURCEObject à partir d'une classe qui n'est pas une page?

J'ai une classe dans mon proj d'ASP.NET, j'aimerais avoir accès GeglobalresourceObject (cette page expose), de n'importe où sur le site, possible?

En d'autres termes, je veux accéder aux ressources globales d'une classe qui n'est pas une page que je ne me soucie pas de la manière.


0 commentaires

5 Réponses :


20
votes

réponse: Oui, comme suit pseudo: xxx pré>

exemple: p>

lblTitle.Text = Resources.MySettings.WebsiteTitle;


1 commentaires

Bonjour, puis-je utiliser (String) Ceci.geglobalresourceObject ("Ressources", "Col_description") Comme ci-dessous dans l'étiquette ou le texte de la touche



1
votes

Si vous êtes sur le site, vous avez accès à httpContext et que vous pouvez utiliser:

HttpContext.GetGlobalResourceObject("myResourceKey")


3 commentaires

Je pense que les ressources sont meilleures car elles sont fortement dactylographiées, plutôt que de l'objet Fullction. Merci quand même


@MRFOX Utilisez la réponse ci-dessus: Stackoverflow.com/Questtions/1107906/...


+1 pour les clés conduites par les données. Il existe des cas où la clé est inconnue lors de la compilation, par exemple à partir d'une base de données ou d'une sélection d'utilisateurs. httpcontext.getglobalresourceObject (ressourcekey); ReviceKey est une chaîne définie plus tôt dans le code.



15
votes

Vous devez utiliser

HttpContext.GetGlobalResourceObject("myResourceKey")


2 commentaires

Je préfère "httpcontext" au lieu de l'espace de noms généré par Visual Studio, car je peux transmettre un paramètre de culture et choisir la langue à revenir. Utilisation de la fonction d'espace de noms «Direct», je reçois toujours l'anglais, je dois changer la culture de fil actuelle avant de l'appeler si je veux la bonne culture.


Bonjour, puis-je utiliser (String) Ceci.geglobalresourceObject ("Ressources", "Col_description") Comme ci-dessous dans l'étiquette ou le texte de la touche



-3
votes

J'ai un peu pris ceci à partir du concepteur de ressources,

ResourceManager temp = 
  new ResourceManager("Resources.<<resource name>>", 
    System.Reflection.Assembly.Load("App_GlobalResources"));


1 commentaires

Le code dans le concepteur est utilisé pour initier l'élément statique. L'ensemble de ressources est donc chargé une fois par instance, puis l'utilisateur accède aux outils fournis par MSFT pour accéder au membre initié. L'utilisation de votre ligne récupérera la ressource de l'assemblage, qui devrait être évitée. Quoi qu'il en soit, la ligne que vous avez affichée Charge le ResourceManager et ne reçoit pas la propriété souhaitée qui est ce que veut l'OP.



2
votes

Sur certaines fermes, vous devez envelopper l'appel à xxx

à l'intérieur d'un bloc d'essai / attraper pour l'obtenir sur le "Impossible de trouver des ressources appropriées pour la culture spécifiée ou la Culture neutre "Erreur.


1 commentaires

Hey, cela fonctionne bien, j'utilise le code suivant: var ressource = httpcontext.getglobalresourceObject ("ResourceBeyame", "RESSENCEKEY"); String Message = ressource! = null? ressource.tostring (): string.empty;