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.
7 Réponses :
Je pensais que c'était quelque chose de similaire à: est-ce pas le genre de ressources que vous recherchez? p> p>
Mes 2 cents à ce sujet, le code que je devais utiliser pour arriver à ma ressource était me.getlocalresourceObject ("[de ressourcekey]") code>. Notez que
getlocalresourceObject code> est utilisé car le dossier du fichier de ressources est
local_resources code>.
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)
Essayez ou p>
Ouvrir réflecteur em>, chargez votre assemblage, accédez aux ressources, une liste de ressources apparaît, recherchez le ResourceManager ("MyProjectName.Resources", ...) Code>, sinon si ce sont les ressources de l'application, vous pouvez simplement utiliser
my.resources.hd code> (voir ici: Objet My.Resources em> ) p>
«HD» code>, copiez le nom (c'est comme myProjectName.resources.resources em>), supprimez le dernier
.resources code> et essayez avec cela. P>
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)
Essayez pour accéder aux chaînes de ressources p> p>
Merci pour ça. Cela m'a eu vraiment près de la réponse. J'ai dû utiliser "global.
Simplement:
Dim loginMessage As String = Global.Resources.NameOfYourResxFile.NameOFVariable
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;
Si vous chargez un fichier externe .resx et souhaitez qu'il apparaisse sous IntelliSense My.Resources, alors vous devez faire 2 choses. P>
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é. P>
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. P>
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 code>, copiez le nom (c'est comme
myProjectName.resources.resources code>), supprimez Le dernier
.resources code> et essaie avec cela.