none
reflexion avec ContainsGenericParameters=true RRS feed

  • Question

  • Bonjour tout le monde,

    jusqu'a présent j'utilise l'instruction m.Invoke(obj, parameters);  pour invoker par réfléxion le résultat d'une méthode m, elle marche bien.

     

    Mais j'ai ajouté de nouvelles méthodes qui contiennent des paramètres générique tel méthode<Int32>(value)

    comment puis-je invoquer le résultat de cette fonction en utilisant la réflexion ?

    Merci d'avance.


    PhD - Student
    jeudi 15 juillet 2010 17:43

Réponses

  • Bonjour,

    Type t;
    
    t = Type.GetType("System.String");
    
    MethodInfo genericMethodInfo = methode.MakeGenericMethod(t);
    return genericMethodInfo.Invoke(obj, parameters);
    
    

    Cordialement


    Gilles TOURREAU - MVP C# - MCTS Windows Forms - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
    • Marqué comme réponse OmarioS samedi 17 juillet 2010 09:22
    jeudi 15 juillet 2010 18:27
    Modérateur

Toutes les réponses

  • je viens de trouver une solution partielle à mon problème 

     

    if (methode.ContainsGenericParameters)

                {

                    MethodInfo genericMethodInfo = methode.MakeGenericMethod(typeof(Int32));

                    return genericMethodInfo.Invoke(obj, parameters);

                }

                else

                    return methode.Invoke(obj, parameters);

     

    mais maintenant je veux factoriser ce code c-à-d je voudrait récupérer dynamiquement (au moment de l'exécution) le type générique. dans mon code il est tout le temps Int32 cela ne me convient pas

     

    Merci d'avance


    PhD - Student
    jeudi 15 juillet 2010 18:02
  • Bonjour,

    Type t;
    
    t = Type.GetType("System.String");
    
    MethodInfo genericMethodInfo = methode.MakeGenericMethod(t);
    return genericMethodInfo.Invoke(obj, parameters);
    
    

    Cordialement


    Gilles TOURREAU - MVP C# - MCTS Windows Forms - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
    • Marqué comme réponse OmarioS samedi 17 juillet 2010 09:22
    jeudi 15 juillet 2010 18:27
    Modérateur
  • Merci Gilles,

    Finalement c'est ce que j'ai fait.  


    PhD - Student
    samedi 17 juillet 2010 09:21