Je construis un profileur de base pour un projet open source. Une exigence est de mesurer le temps d'exécution d'une méthode. Bien que cela soit assez facile, je dois le faire sans connaître la méthode ou sa classe contenant jusqu'à l'exécution. Le moyen d'invoquer le profileur sera lorsque l'utilisateur appellera le profileur de l'EDI dans un document actif. Donc, si class1 est ouvert et que l'utilisateur clique avec le bouton droit de la souris sur l'espace dans le document, sélectionne le profil, alors, et seulement alors, la classe est connue.Utilisation de génériques et de methodinfo
Je le code à utiliser MethodInfo:
MethodInfo methodInfo = typeof(t).GetMethod(s);
T est juste un support de type générique (classe X où T: classe, est la signature de la classe). s est juste une chaîne du nom de la méthode.
J'ai cette erreur, cependant:
Nom du type prévu, mais le nom du paramètre trouvé.
La méthode conteneur de cette ligne de code a t comme paramètre de type T, mais le déplacer ne corrige pas le problème. T est juste un objet, et si je fournis un nom d'objet, comme le nom de la classe, il n'y a pas d'erreur.
Ce qui donne?
EDIT: Un activateur peut peut-être résoudre ce problème.
En outre, pourrais-je utiliser la clause where pour limiter T à une classe statique uniquement?
Merci
Pouvez-vous montrer comment la méthode contenant cette ligne de code est appelée, s'il vous plaît? –