Webcontrol+reflection

Signaler
Messages postés
2
Date d'inscription
samedi 5 août 2006
Statut
Membre
Dernière intervention
6 août 2006
-
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
-
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

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
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
Messages postés
2
Date d'inscription
samedi 5 août 2006
Statut
Membre
Dernière intervention
6 août 2006

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...
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
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