Accéder aux ressources d'une dll

Résolu
Todsd Messages postés 3 Date d'inscription mercredi 9 septembre 2009 Statut Membre Dernière intervention 16 avril 2009 - 15 avril 2009 à 11:11
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 - 16 avril 2009 à 14:13
Bonjour à tous, je suis un petit nouveau en C# et WPF et je dois faire un UserControl un peu compliqué (pour moi bien sûr ).

J'ai une application de départ qui à son ouverture doit regarder dans un répertoire, qui lui est passé en paramètre, et pour chaque dll contenu dans ce répertoire, elle doit chercher une image embedded (nommée splash.png) et créer un bouton pour chaque image.

Je viens donc vous demander de l'aide car je ne sais vraiment pas comment faire pour rechercher cette image dans une dll.

Merci d'avance

5 réponses

krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 50
15 avril 2009 à 11:31
Salut

La classe Assembly (avec ses méthodes statiques te permettra de trouver l'assembly de ta dll).
Une fois que c'est fait, tu pourras utiliser la méthode GetManifestResourceNames() (toujours de la classe Assembly) afin de voir toutes les ressources de l'assembly, et en l'occurrence, le nom exact de la ressource que tu cherches.
Ensuite, tu devras utiliser GetManifestResourceStream(nom) ce qui te permettra de récupérer le stream et ainsi de créer ton image (je ne sais plus exactement comment on génère une image à partir d'un stream en WPF, mais je sais que ce n'est pas bien compliqué).

Krimog :
while (!(succeed = try())) ;
3
Todsd Messages postés 3 Date d'inscription mercredi 9 septembre 2009 Statut Membre Dernière intervention 16 avril 2009
15 avril 2009 à 13:13
Merci beaucoup e ta réponse, ça marche nickel
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 50
15 avril 2009 à 14:08
Bah de rien ;)

A ce propos, c'est quoi la ligne de code pour générer une Image à partir d'un Stream please ?

Krimog :
while (!(succeed = try())) ;
0
Todsd Messages postés 3 Date d'inscription mercredi 9 septembre 2009 Statut Membre Dernière intervention 16 avril 2009
16 avril 2009 à 13:27
Désolé du temps de réponse, voilà ce que j'ai fait pour mon bouton

foreach (string source in assembly.GetManifestResourceNames())
{
         if (source.Contains("splash"))
         {
             Button b = new Button();
             Image myImage = new Image();
             myImage.Width = 200;

             BitmapImage myBitmapImage = new BitmapImage();
             myBitmapImage.BeginInit();
             myBitmapImage.StreamSource = assembly.GetManifestResourceStream(source);

              myBitmapImage.DecodePixelWidth = 200;
              myBitmapImage.EndInit();

              myImage.Source = myBitmapImage;

             b.Content = myImage;
         }
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 50
16 avril 2009 à 14:13
Merci ;)

Krimog : while (!(succeed = try())) ;
- Quand le règlement tu respecteras, ravis de te répondre on sera -
0