IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[c#]comment gérer les parametres de type "ref" en réflection?


Sujet :

Windows Forms

  1. #1
    Membre habitué Avatar de Jayceblaster
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 420
    Points : 174
    Points
    174
    Par défaut [c#]comment gérer les parametres de type "ref" en réflection?
    Bonjour

    Me revoila avec ma réflection ... pas facile comme méthode

    Voila j'ai une DLL toute bete qui me renvoie une string par référence:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
       public int maFonction( ref string maString)
       {
          maString = "voila ma string";
       }
    Comment puis je faire par réflection pour récupérer cette string?

    j'aurai fait (mais je sais pas quoi mettre a la place des "???????????"):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
     
        Assembly assemblage = Assembly.LoadFrom("c:\\maDLL.dll");
        Type type = assemblage.GetType("maDLL.maDLL1");
        object monObjet = assemblage.CreateInstance("maDLL.maDLL1");
        object [] arguments = {??????????}; 
        object result = type.InvokeMember
                                    ("maFonction",BindingFlags.InvokeMethod,   
                                      null, monObjet, arguments);
        Console.WriteLine("Resultat: " + result);
        Console.ReadLine();
    Merci d'avance

  2. #2
    Membre habitué Avatar de Jayceblaster
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 420
    Points : 174
    Points
    174
    Par défaut
    personne ne peut m'aider????


    globalement comment on peut caster un type pointeur en type object....

  3. #3
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Salut .

    as tu essayé tout simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    string maString;
     
    Assembly assemblage = Assembly.LoadFrom("c:\\maDLL.dll");
        Type type = assemblage.GetType("maDLL.maDLL1");
        object monObjet = assemblage.CreateInstance("maDLL.maDLL1");
        object [] arguments = {maString}; 
        type.InvokeMember
                                    ("maFonction",BindingFlags.InvokeMethod,   
                                      null, monObjet, arguments);
        Console.WriteLine("Resultat: " + maString);
        Console.ReadLine();
    ???

    Il me semble que le framework fait la conversion auto des types lors de l'utilisation de la réflection

  4. #4
    Membre habitué Avatar de Jayceblaster
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 420
    Points : 174
    Points
    174
    Par défaut
    Il me semble que le framework fait la conversion auto des types lors de l'utilisation de la réflection
    ben il faut croire que non puisque j'avais deja essayé ton petit bout de code mais ca ne marche pas...

Discussions similaires

  1. [C#/SQL] Comment gérer les exceptions d'une Procédure stockée ?
    Par thomas_strass dans le forum Accès aux données
    Réponses: 10
    Dernier message: 06/07/2005, 11h40
  2. Comment gérer les valeur Nulles dans une requête ?
    Par sondo dans le forum Bases de données
    Réponses: 3
    Dernier message: 16/03/2005, 12h02
  3. Comment gérer les espaces blancs?
    Par Lambo dans le forum XML/XSL et SOAP
    Réponses: 10
    Dernier message: 16/05/2003, 10h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo