8
votes

Comment obtenir des valeurs de fichier de ressources dans Visual Basic?

Je suis nouveau à Visual Basic, et j'ai des problèmes d'accès au fichier de ressources pour mon projet.

Dim rm As Resources.ResourceManager = New Resources.ResourceManager("MyProjectName.My.Resources.Resources", [Assembly].GetExecutingAssembly())
Dim myValue = rm.GetString(lookUpKey) 'boom Object reference not set to an instance of an object.


2 commentaires

Nope c'est "HD" un nom de chaîne dans mon fichier de ressources de projets. * Modifier le changement de "valeur" sur "Nom".


Avez-vous un réflecteur? Ouvrez votre assemblée là-bas, accédez à des ressources, une liste de ressources apparaît, recherchez la seule suite HD , copiez le nom (c'est comme myProjectName.resources.resources ), supprimez Le dernier .resources et essaie avec cela.


7 Réponses :


9
votes

Je pensais que c'était quelque chose de similaire à: xxx

est-ce pas le genre de ressources que vous recherchez?


1 commentaires

Mes 2 cents à ce sujet, le code que je devais utiliser pour arriver à ma ressource était me.getlocalresourceObject ("[de ressourcekey]") . Notez que getlocalresourceObject est utilisé car le dossier du fichier de ressources est local_resources .



1
votes

Reportez-vous à l'article MSDN Récupération de ressources avec la classe ResourceManager EM> pour la dénomination des convétions:

Dim myManager As New _
   System.Resources.ResourceManager("ResourceNamespace.myResources", _
   myAssembly)


0 commentaires

1
votes

Essayez ResourceManager ("MyProjectName.Resources", ...) , sinon si ce sont les ressources de l'application, vous pouvez simplement utiliser my.resources.hd (voir ici: Objet My.Resources )

ou

Ouvrir réflecteur , chargez votre assemblage, accédez aux ressources, une liste de ressources apparaît, recherchez le «HD» , copiez le nom (c'est comme myProjectName.resources.resources ), supprimez le dernier .resources et essayez avec cela.


0 commentaires

0
votes

Je n'ai pas pu accéder au fichier de ressources avant d'avoir déplacé le fichier .resx dans son propre projet et référencé ce projet de mon principal. J'ai aussi dû créer une classe factice dans ce projet afin de pouvoir compiler dans un fichier DLL.

Le code d'accès au fichier de ressources est en fait situé dans le fichier de ressources générées.Resx.vb. P>

J'ai pu accéder au fichier de ressources à l'aide du code suivant. P>

'Name of Class Library where I moved the resx file
Dim classLibraryName As String = "ResourceProj"
'Name of Resource File without the .resx suffix
Dim resourceFileName As String = "Mappings"
'Finding the assembly of the resx file, ResourceProjClass is a dummy class I created so that the dll would build.
Dim myAssembly As Assembly = GetType(ResourceProj.ResourceProjClass).Assembly

Dim rm As Resources.ResourceManager = Nothing
rm = New Resources.ResourceManager(classLibraryName & "." & resourceFileName, GetType(myAssembly)
Return rm.GetString(lookUpKey)


0 commentaires

4
votes

Essayez xxx

pour accéder aux chaînes de ressources


1 commentaires

Merci pour ça. Cela m'a eu vraiment près de la réponse. J'ai dû utiliser "global. .my.resources.reesourcemanager.getstring (ResourcestringName)"



0
votes

Simplement:

Dim loginMessage As String = Global.Resources.NameOfYourResxFile.NameOFVariable


2 commentaires

Veuillez formater votre code en ajoutant 4 espace de tête. Aussi, que fait le code? Je n'ai aucune connaissance dans VB.


En c Sharp alors: chaîne loginmessage = global.resources.nameofyourresxfile.nameOfvariable;



1
votes

Si vous chargez un fichier externe .resx et souhaitez qu'il apparaisse sous IntelliSense My.Resources, alors vous devez faire 2 choses.

D'abord, le fichier doit être à la base de votre projet. Cliquez simplement sur le bouton droit de la souris sur le projet et «Ajouter un élément existant» et donnez-lui votre fichier .resx. Vous devriez remarquer qu'il n'y a pas de Chevron pour développer le fichier RESX comme votre fichier de ressources intégré.

La dernière étape consiste à mettre en surbrillance votre fichier RESX et à accéder à la fenêtre Propriétés. Sous Outil personnalisés, Mettez "RESXFILECODEGENERATOR" et sous l'espace de noms d'outils personnalisé, mettez "my.Resources". Vous devriez maintenant être en mesure d'accéder à la programmation à cette ressource sous my.Resources. [Nom du fichier RESX] .resource_item.


0 commentaires