Lire les ressources à partir d'un fichier DLL
J'ai deux Visual Basic 2008 projets - l'un est un projet de bibliothèque de classes et l'autre est un projet Windows Forms. Dans le projet de bibliothèque de classes, j'ai défini certaines chaînes dans les ressources du projet (project properties > onglet "Ressources").
Je de construire ce projet de bibliothèque de classes et d'obtenir le fichier DLL du dossier de débogage et ajouté comme une référence dans mon projet Windows Forms.
Comment puis-je lire ces chaînes de référence de fichier DLL?
OriginalL'auteur Ramiz Uddin | 2010-05-05
Vous devez vous connecter pour publier un commentaire.
Je pense que vous venez d'utiliser
System.Reflection.Assembly.Load
à la charge de l'autre assemblée, puis utiliser le constructeur deSystem.Resources.ResourceManager
qui prend une assemblée.Remarque, je ne pense pas qu'il a besoin d'une référence pour ce travail.
Pas sûr, mais il semble plausible. Si j'étais vous suggérons d'utiliser Donovan réponse depuis qui sonne comme il pourrait être plus approprié pour vous
OriginalL'auteur Hans Olsson
Alors que vous pouvez charger dynamiquement le fichier DLL comme ho suggère, c'est bien d'utiliser une référence comme vous l'avez fait. En fait, je voudrais vous recommandons d'utiliser une référence, sauf si vous avez eu une exigence particulière pour charger dynamiquement les ressources de l'assemblée.
À l'accès à ces ressources, il ya quelques choses que vous devez faire.
Dans la ressource de l'assemblée, vous aurez besoin pour s'assurer que les ressources sont publiques. Par défaut, les ressources sont mises à l'interne, ce qui signifie que vous ne verrez pas les ressources dans l'application winforms. Double-cliquez sur Propriétés\Ressources.resx pour ouvrir la vue ressources. Dans la barre d'outils, vous verrez une étiquette "Modificateur d'Accès" à côté d'une zone de liste déroulante liste déroulante. Modifier la sélection publique.
Vous aurez besoin de faire référence à l'assemblée de l'formes d'application. Vous l'avez dit, vous l'avez déjà fait. Juste une remarque qu'une meilleure façon de le faire est de créer une solution qui contient à la fois des projets. Puis, dans les formes app choisissez ajouter une référence. Cliquez sur l'onglet Projets jusqu'en haut. Double-cliquez sur la DLL de ressource de nom de projet. Cela fonctionne mieux que le référencement de la DLL de débogage directement, car elle signifie que si vous modifiez entre une version release et debug dans vos formulaires d'application, il va automatiquement créer un correspondant de presse/version de débogage de votre ressource de l'assemblée.
Une fois que vous avez ajouté la référence que vous pouvez simplement référence au type de la DLL de ressources, par exemple
ResourceDLLNamespace.Les propriétés.De la ressource.ResourceName
Juste une remarque, vous devez être conscient du type de collisions de noms si vous utilisez le même espace de noms pour vos formulaires d'application et la DLL de ressources. Dans cette situation, les deux formulaires d'application aura accès à ses propres Propriétés.Les ressources de la classe ainsi que celle de la DLL de ressource. Vous pouvez faire deux choses pour éviter cela:
-Donovan
OriginalL'auteur donovan