Comment : accéder aux ressources dans les DLL satellites
Une fois que vous avez créé une DLL satellite et ajouté les ressources (icônes, bitmaps, chaînes de ressource, etc.), ces dernières sont disponibles dans vos compléments et autres projets d'automation.La procédure ci-dessous montre comment effectuer cette opération.
[!REMARQUE]
Les boîtes de dialogue et les commandes de menu que vous voyez peuvent être différentes de ce qui est décrit dans l'aide selon vos paramètres actifs ou votre édition. Ces procédures ont été développées avec les paramètres de développement généraux actifs.Pour modifier vos paramètres, sélectionnez Importation et exportationde paramètres dans le menu Outils.Pour plus d'informations, consultez Paramètres Visual Studio.
Accès aux ressources d'une DLL satellite
Ouvrez Visual Studio et chargez un projet de complément existant ou créez-en un.
Ajoutez l'exemple de code suivant, compilez-le et exécutez-le.
Exemple
Visual Studio utilise l'algorithme général suivant pour rechercher une DLL satellite.Vous pouvez utiliser ce code pour vérifier que la DLL satellite est correctement construite, au bon emplacement, et qu'elle comporte le nom de ressource voulu.
static void Main(string[] args)
{
string path = @"<some path here>";
System.Reflection.Assembly asm =
System.Reflection.Assembly.LoadFrom(path);
// For enhanced security, use the LoadFrom overload
// System.Reflection.Assembly.LoadFrom(path, securityInfo);
// where securityInfo is an instance of an Evidence object.
System.Reflection.Assembly assemblyForResources =
asm.GetSatelliteAssembly(System.Threading.
Thread.CurrentThread.CurrentCulture);
System.IO.Stream stream =
assemblyForResources.GetManifestResourceStream
(assemblyForResources.GetManifestResourceNames()[0]);
ResourceReader resReader = new ResourceReader(stream);
foreach (System.Collections.DictionaryEntry entry in resReader)
{
System.Windows.Forms.MessageBox.Show(entry.Key.ToString());
}
}
Compilation du code
Pour utiliser cet exemple, créez une application console Visual C#, remplacez la fonction Main() par ce code et affectez à la variable de chemin d'accès le chemin de l'assembly de complément (et non celui de la DLL satellite).Après exécution de cette opération, vous pourrez consulter toutes les ressources disponibles dans la DLL satellite.