C# Reflexion et appel de methode statique

Hop,

J’ai besoin de pouvoir appeller, en utilisant la Reflexion, une methode statique avec des parametres d’une classe dont je ne connais que le nom, malgre mes recherches, je ne trouve pas exactement ce que je veux…

J’ai trouve ceci …

Process pr = Process.GetCurrentProcess(); string sAssemblyName = pr.ProcessName + ".exe"; Assembly a = Assembly.LoadFrom(sAssemblyName); Type t = a.GetType("Bench"); DbGenericObject o = Activator.CreateInstance(t) as DbGenericObject;

Deja la derniere ligne ne me plais pas puisque instancier une classe alors que je veux acceder une methode statique, ca ne m’avance a rien…

Vous pouvez m’aider, please ?
Thanks ! B)

Edit: en plus “Process.GetCurrentProcess()” ne marche pas, ca me dis qu’il ne peux pas recuperer le process d’une “remote machine”, c’est surement parce que je suis en WebForm, non ?
Comment on fait dans un webform ?

Euh déjà, utilise les méthodes/propriétés statiques de la classe Assembly pour récupérer l’instance de ton propre process, ce sera plus simple que ton truc.

Ensuite il te faut énumérer les méthodes du type, pas besoin de l’instancier, et ensuite c’est la méthode que tu invoques. (je dis ça de tête, je n’ai pas les noms de méthode sous la main)

De la reflection dans un webform? Choper le process actuel non non, bad. Et haaaaaaaaaaaa quand meme B). Serieux t’as pas mieux pour recuperer le bon objet? Tu cherches a faire quoi? Chui sur qu’il y a un meilleurs design.

J’ai une classe generique abstraite qui herite d’une pleïade d’autres classes qui doivent etre affichees dans un user control.

Je pourrai creer autant de user control que de classes, mais ca me ferai beaucoup de code duplique, car on ne peux pas heriter un user control sans re-ecrire le code asp correspondant, non ? (ou alors j’ai pas trouver comment faire B) )

Car tout le code de mon user control est exactement le meme partout sauf pour une ligne !

la difference se situe dans cette methode differente selon le type d’objet generique traite :
public maclassegenerique getObject(double id)
{
return monobjet.mamethodestatique(id);
}

Je pensais donc utiliser la reflexion, mais c’est vai que c’est pas tres propre, je l’admet :smiley:

j’ai aussi pense a utiliser un switch tout con, ca reviens un peu au meme (voire pire), mais l’avantage de la reflexion c’est qu’elle fait « tout le travail d’un switch », comme ca, j’avais pas de code a re-ecrire, le jour ou j’ai un nouveau type d’objet a traiter. Juste un parametre avec le nom de la classe a changer.

Hors sujet:
D’ailleurs au passage Glop, dans .NET 2.0 on peux faire des Proprietes abstraites ? parce que’en .NET 1.1 (celui deploye officiellement au boulot) c’est pas possible :smiley: pourtant ca me serait pas mal pratique :stuck_out_tongue:

Oui donc clair, la j’ai pas assez d’info concretes pour te proposer autre chose, mais je suis a peu pres sur que ton design il est pas bon B) y a trop plus « propre » et moi je pense qu’il faut surtout pas utiliser la reflection pour faire ce genre de choses. Et si si on peut heriter d’un user control sans ecrire de fichier aspx au passage :smiley:

Ah bah je sais pas faire B)
J’imagine que c’est la meme chose pour heriter d’une page sans re-ecrire le aspx correspondant, mais je sais aps faire non plus :stuck_out_tongue:

Tu serais un amou^H^H^H^H super sympa si tu (ou d’autres !) pouvais m’expliquer comment on fait (j’ai pas trouve en fait :D)

Merci ! :smiley:

YES, j’ai reussi B) (a heriter d’une page/usercontrol)

Je sais pas si c’est tres clean la facon dont j’ai fait, mais ca marche :