Connaitre les types utilisés dans une classe

mastercatz Messages postés 193 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 12 août 2010 - 24 janv. 2006 à 14:47
mastercatz Messages postés 193 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 12 août 2010 - 2 févr. 2006 à 13:44
Bonjour
J'ai une classe que je voudrais dupliquer (une classe du framework pour ne rien cacher :) et je voudrais connaitre les classes utilisées dedans pour les importer aussi avec. Le tout bien entendu sans avoir à eplucher le code ligne par ligne (vraiment trop long ...). J'ai essayé de trouver un addin pour le clebre Reflector mais aucun ne va chercher les fichier des classes utilisées.
Si quelqu'un a une idée ca serait sympa.
Merci d'avance.

11 réponses

taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 3
24 janv. 2006 à 17:25
fait plutot un héritage qu'une copie

classs MaForm : System.Windows.form
{

}

tu as tout et tu peux tout uitiliser et rajouter ce que tu veux, c'est le plus propre


Be happy , by
Tao
0
mastercatz Messages postés 193 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 12 août 2010
24 janv. 2006 à 17:41
Si j'avais voulu faire de l'héritage je l'aurais fait.
Ce que je cherche c'est bien copier les différentes classes utilisées.
0
Nikoui Messages postés 794 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 19 août 2008 13
24 janv. 2006 à 18:15
Tu ne peux pas obtenir tout ce dont tu as besoin par reflexion ?
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
25 janv. 2006 à 01:06
Salut, si j'ai bien compris c'est ça que tu veux ( surtout les "GetNestedTypes" ) :

Type t = typeof( Form );
Type baseTypes = t.BaseType; // renvoie null pour la classe object
Type[ ] nestedTypes = t.GetNestedTypes( );
Type[ ] interfaces = t.GetInterfaces( );
0

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

Posez votre question
mastercatz Messages postés 193 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 12 août 2010
25 janv. 2006 à 09:16
Ca n'a pas l'air de bien fonctionner, essaye ton code sur la classe System.Windows.Forms.Control et tu veras que ca ne fonctionne pas.
Pour ce qui est de la reflection je ne m'y connais pas trop, alors ........
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
25 janv. 2006 à 20:12
Ca ne fonctionne pas, peux tu être plus précis.. !?

Pour les types non publics faut rajouter un flag, c'est valable pour les types mais pour les membres y'a encore d'autres flags à rajouter.

Type[ ] nestedTypes = t.GetNestedTypes( BindingFlags.Public | BindingFlags.NonPublic );
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
1 févr. 2006 à 23:51
Salut,

A mon avis il ne parle pas des types nested

public class Control
{
public class NestedType
{
}

public Control()
{
}
}

mais plutôt de savoir quels types sont utilisés comme membres, dans les corps de méthodes, etc

En gros de créer une liste des dépendances
C'est bien ça ?

/*
coq
MVP Visual C#
*/
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
2 févr. 2006 à 07:39
Tu as peut être bien raison ; )

Pour connaitre les membres de la classe c'est possible avec FindMembers mais après connaitres toutes les dépendances, dans les methodes etc.. je sais pas, j'ai pas regardé..

Type t = typeof( MyClass );
MemberInfo[ ] infos = t.FindMembers
(
MemberTypes.All,
BindingFlags.Instance |
BindingFlags.Static |
BindingFlags.Public |
BindingFlags.NonPublic,
null,
null
);
0
mastercatz Messages postés 193 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 12 août 2010
2 févr. 2006 à 07:48
Oui ca serais bien ca coq
A la limite pas forcement les types dans le corps des methodes/membres mais au moins les types utilisés comme detour des methodes et ceux utilisés dnas les parametres.
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
2 févr. 2006 à 12:03
Pour les corps de méthode ça doit être faisable via CodeDOM & co.

Pour les types de retour, paramètres des méthodes, GetMethods ou GetMethod te permettent d'obtenir l'instance de la classe MethodInfo décrivant la méthode, et exposant notamment la propriété ReturnType et la méthode GetParameters.

/*
coq
MVP Visual C#
*/
0
mastercatz Messages postés 193 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 12 août 2010
2 févr. 2006 à 13:44
Je vais faire quelques essais avec ces infos voir si je trouve mon bonheur ^^
Merci pour vos réponses.
0
Rejoignez-nous