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

C# Discussion :

GetMethod() retourne null


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    maa
    maa est déconnecté
    Membre éclairé
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Par défaut GetMethod() retourne null
    Bonjour,

    J'appelle une fonction d'une OLE dll enregistrée avec regsrvr32 grâce au code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    _OLEType = Type.GetTypeFromProgID("sampleoleserver");
    _OLEServer = Activator.CreateInstance(_OLEType);
    _OLEType.InvokeMember("MyMethod", BindingFlags.InvokeMethod, null, _OLEServer, parameters);
    Comme je fais appel plusieurs millier de fois à cette méthode. Je me demande si il n'y a pas moyen d'optimiser les choses.

    J'ai déjà mis les 2 première lignes en dehors de ma méthode. Pour la troisième ligne, j'aimerai récupérer une fois l'instance de MethodInfo correspondant à MyMethod en dehors de ma méthode, puis l'invoquer autant de fois que nécessaire par la suite. Le problème est que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    _OLEType.GetMethod("MyMethod")
    retourne null.
    Pourtant l'invocation fonctionnait bien avec InvokeMember.
    Comprenez-vous pourquoi ?

    Merci d'avance.

  2. #2
    Membre éclairé Avatar de gdkenny
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 251
    Par défaut
    Il n'y a pas de surcharge de GetMethod avec des BindingFlags en paramètres?
    Si oui, essaie ça, en mettant les valeurs de BindingFlags les plus appropriées pour ton cas

  3. #3
    maa
    maa est déconnecté
    Membre éclairé
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Par défaut
    Je les ait toutes essayé. Aucune ne fonctionne.

    Il semble qu'on ne puisse pas le faire car le type ne possède en fait pas de méthode. Il doit falloir accéder à l'objet COM utilisé par l'interop pour pouvoir récupérer ses membres...

    J'ai par contre lu qu'il est possible de définir une interface pour un objet COM en utilisant les outils .net TlbExp.exe et TlbImp.exe.

    J'ai essayé d'appliquer l'outil TlbExp.exe sur ma dll OLE, mais j'obtiens l'erreur suivante :
    TlbExp : error TX0000 : Could not load file or assembly 'file:///C:\xHB\samples\
    sampleoleserver.dll' or one of its dependencies. The module was expected to cont
    ain an assembly manifest.
    Quelqu'un a déjà utilisé ces outils et saurait m'aider ?

    Merci.

Discussions similaires

  1. Findcontrol retourne null
    Par Kiwi_violet dans le forum ASP.NET
    Réponses: 1
    Dernier message: 13/04/2007, 12h21
  2. TTF_OpenFont() retournant NULL
    Par FabaCoeur dans le forum SDL
    Réponses: 4
    Dernier message: 11/04/2007, 16h30
  3. GetDC retourne NULL Oo
    Par Groove dans le forum OpenGL
    Réponses: 3
    Dernier message: 02/03/2007, 17h46
  4. Réponses: 3
    Dernier message: 02/03/2007, 11h41
  5. opérateur + dans SELECT retourne null ?
    Par david_chardonnet dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/01/2007, 10h47

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