Type d'un nullable par réflexion [Résolu]

Signaler
Messages postés
273
Date d'inscription
dimanche 5 octobre 2003
Statut
Membre
Dernière intervention
6 février 2009
-
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
-
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

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
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#]
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
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#]
Messages postés
273
Date d'inscription
dimanche 5 octobre 2003
Statut
Membre
Dernière intervention
6 février 2009
1
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.