Information sur la class

Seth77 Messages postés 572 Date d'inscription mardi 30 avril 2002 Statut Membre Dernière intervention 4 mai 2020 - 8 sept. 2006 à 22:50
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 - 11 sept. 2006 à 12:58
Salut

est il possible de recuperer dans le code la class et le nom du fichier ?

thx

Herve

6 réponses

MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
9 sept. 2006 à 09:09
Salut,
En utilisant la reflection, tu peux recuperer un peu tout ce que tu veux sur tes classes, executer ses méthodes, etc. (mais pas recuperer le nom du fichier avant compilation)

Petit exemple vite fait

<hr />using

System;

using System.Reflection;

namespace ConsoleApp
{

   class
Program
   {

      static
void Main(
string[] args)
      {

         Assembly a =
Assembly.GetExecutingAssembly();

         Console.WriteLine(a.FullName); 

         Type t = a.GetType(
"ConsoleApp.Program"); 

         MethodInfo mi = t.GetMethod(
"SayHello",
BindingFlags.NonPublic |
BindingFlags.Static);

         Console.WriteLine(
"Appel de {0}", mi.Name);
         mi.Invoke(
null,
null);
      }

      
      private
static
void SayHello()
      {

         Console.WriteLine(
"Hello");
      }
   }
}
<hr />

Mx
MVP C# 
0
Seth77 Messages postés 572 Date d'inscription mardi 30 avril 2002 Statut Membre Dernière intervention 4 mai 2020 1
9 sept. 2006 à 11:18
C'est en fait pour la gestion d'erreur...pour connaitre ou exactement il me leve des exceptions

Herve
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
11 sept. 2006 à 11:24
Roohh Morpion tu me déçois :

StackFrame sf = new StackFrame(1, true);
string method = sf.GetMethod().ToString();
string fileName = sf.GetFileName();

Avec ceci tu récupèreras ce dont tu as besoin :)


::|The S@ib|::
MVP C#.NET
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
11 sept. 2006 à 11:25
Mon navigateur pu du cul sur l'indentation.



Au passage tu peux avoir aussi la ligne exacte avec lineNumber.


::|The S@ib|::
MVP C#.NET
0

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

Posez votre question
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
11 sept. 2006 à 12:41
Ouai, en effet ca peut rouler comme ca pour le nom de fichier
Encore faut-il que le PDB soit présent par contre il me semble, tu confirmes ? (J'ai rien pour tester devant moi)
Mx
MVP C# 
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
11 sept. 2006 à 12:58
Oui logiquement, il te faut le PDB pour le nom de fichier, mais pour le reste pas besoin il peut s'en sortir tout seul.



::|The S@ib|::
MVP C#.NET
0
Rejoignez-nous