Webcontrol+reflection

Aspix Messages postés 2 Date d'inscription samedi 5 août 2006 Statut Membre Dernière intervention 6 août 2006 - 5 août 2006 à 13:30
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 - 6 août 2006 à 22:29
Bonjour,

Voilà, j'ai un petit projet sur lequel j'ai placé des composants Webcontrol personnalisé.
J'aimerai faire une page qui va me permettre d'aller "scanner" toutes mes pages afin de retrouver mes control perso, de les afficher, de pouvoir modifier leur contenu pour les renvoyer (contenu sera surement dans un fichier xml).
J'ai fait une method qui prend comme paramètre un control (Page) et qui me détecte bien mes Webcontrol perso (label,....).

Cependant, je ne sais pas vraiment comment faire pour avoir une page qui va scanner toutes mes pages, afin d'envoyer mon paramètre Page dans ma méthode.
J'ai essayé un peu la reflection, je sais retrouver mes méthodes de mes pages via MethodInfo, mais je ne sais pas comment faire pour retrouver tous mes control (this.Page).
Pourriez-vous m'aider, me conseiller?
Voici mon petit test de reflection :

DirectoryInfo di = new DirectoryInfo(@"C:\WebSitePublication\bin");
        FileInfo[] fi = di.GetFiles();
        foreach (FileInfo files in fi)
        {
            Assembly Ass = Assembly.GetExecutingAssembly();
          
            foreach (Type type in Ass.GetTypes())
            {
                foreach (MethodInfo method in type.GetMethods())
                {
                     //Test via affichage        
                    TextBox1.Text += " \n Methode :" + method.ToString();
                    TextBox1.Text += " \n Type :" + type.ToString();
                }
            }
        }

3 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
6 août 2006 à 18:00
Bonjour,


si j'ai bien compris, tu veux faire une page qui te permettrais de modifier d'autres pages ? si c'est le cas à mon avis tu as un gros problème d'architecture, essaye de modifier tes différentes pages en les dérivant d'une page de base pour faire l'action que tu veux seulement sur la page de base ..

ce que tu essaie de faire et surement possible mais TRES compliqué :-/ il faut créer une instance de la classe qui hérite de celle que tu as trouvé (si t'es en .net 2) puis appellé la méthode sur l'instance, bref bien trop lourd pour ce que tu as a faire je pense





<hr />

Cyril - MVS - MCP
0
Aspix Messages postés 2 Date d'inscription samedi 5 août 2006 Statut Membre Dernière intervention 6 août 2006
6 août 2006 à 21:30
Bonjour,

Oui, en fait, j'ai des label, boutons, et je veux faire une page qui va me permettre de retrouver tous ces label, boutons que j'ai personnalisé, etc...qui sont sur le site afin par exemple de pouvoir modifier la langue du texte via des fichiers resx.
J'utilise une masterPage, et je sais repérer tous les controles via une page, mais via la reflection, je ne sais pas comment faire pour scanner toutes mes pages et les retrouver tous.
Je suis en .NET 2 et j'hérite a chaque fois d'une Page perso.
Je suis débutant en ce qui concerne la reflection, et mes tests sont réduits...
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
6 août 2006 à 22:29
jette un oeil la dessus (en francais) http://www.labo-dotnet.com/Articles/ASPNET/Localisation%20en%20ASPdotNET%202/0/1429.aspx tu as pleins d'autres articles en regardant sur google :-)

la reflection c'est trés puissant mais c'est TRES rarement indispensable, surtout pour des petites choses comme ca :-)

<hr />Cyril - MVS - MCP
0
Rejoignez-nous