Type d'un nullable par réflexion

Résolu
zebobo5 Messages postés 273 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 6 février 2009 - 24 nov. 2006 à 11:15
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 - 24 nov. 2006 à 12:26
Salut,

Comment récupérer le type d'un nullable par réflexion?
exemple :

public

class
T
{

   private
Int64? _intX;

   public
Int64? X
   {

      get {
return _intX; }

      set { _intX =
value; }
   }
}
static

void Main(
string[] args)
{
   T
n =
new
T();

   string s = n.GetType().GetProperty(
"X")...

}

Je voudrais récupérer s="Int64" tout en gardant : " n.GetType().GetProperty("X") "

Quelqu'un aurait-il une idée ?

PS au admin : Il faudrait ajouter un theme de message : "Reflexion"
 
<hr />
ZeBobo5 - http://blogs.msdn.com/zebobo5/
N'oubliez pas de cloturer votre post.

3 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
24 nov. 2006 à 12:26
arf... autant pour moi... je suis allé un peu vite :

T n = new T();
Type t = n.GetType().GetProperty("X").PropertyType;

List<string> mesTypes = new List<string>();
if (t.IsGenericType) {
   Type[] typeArguments = t.GetGenericArguments();
   foreach (Type type in typeArguments) {
      mesTypes.Add(type.FullName);
   }
}

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
3
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
24 nov. 2006 à 11:43
en fait... tu peux faire ceci :

T n = new T();
Type t = n.GetType();

List<string> mesTypes = new List<string>();
if (t.IsGenericType) {
   Type[] typeArguments = t.GetGenericArguments();
   foreach (Type type in typeArguments) {
      mesTypes.Add(type.FullName);
   }
}

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
0
zebobo5 Messages postés 273 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 6 février 2009 1
24 nov. 2006 à 12:19
merci, pour ta réponse mais t n'est pas IsGenericType

En fait il faut que je trouve "Int64" à partir de : n.GetType().GetProperty("X").PropertyType

je sais que mon exemple est un peu nul...

<hr />
ZeBobo5
N'oubliez pas de cloturer votre post.
0
Rejoignez-nous