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 :

Interfaces et Reflection


Sujet :

C#

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 17
    Points : 10
    Points
    10
    Par défaut Interfaces et Reflection
    Bonjour,

    Peut-on savoir si une interface correspond au premier niveau d'héritage d'une classe ?
    Je m'explique par un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    interface ILow
    {
    }
     
    interface IMedium : ILow
    {
    }
     
    interface IHigh : IMedium
    {
    }
     
    interface IToto
    {
    }
     
    interface ITata
    {
    }
     
    class A : IHigh, IToto, ITata
    {
    }
     
    Type Check(A inst_A, Type type_itf)
    {
      // Ici je veux trouver l'interface la + spécialisée de inst_A, qui implémente type_itf
      // Donc si je passe IMedium ou ILow dans le paramètre type_itf,
      // je veux renvoyer IHigh en retour de fonction
    }
    Je sais vérifier si l'interface type_itf est implémentée par inst_A grâce à IsAssignableFrom.
    Ensuite je sais aussi récupérer la listes des interfaces de inst_A et vérifier laquelle hérite de type_itf, mais je récupère toute l'arbre d'héritage, et je n'ai pas d'idée pour récupérér l'interface la + spécialisée.

    QQun aurait une idée ?
    Merci

  2. #2
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Points : 661
    Points
    661
    Par défaut
    Une solution :
    Si tu arrive a verifier si une interface en derive d'une autre,

    Par de la classe de base est etabli un algorithme en remontant, tu pouvoir te represyenter des chaines d'heritage ainsi.
    Pour les details, cherche tout seul !

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Oui avec un algo récursif, mais bon c'est un peu lourd...
    J'ai vu qu'il existait pas mal de méthodes sur les types, mais elles me semblent assez obscures, donc je me demandais si qq les maitrisait mieux que moi et savait si je pouvais y trouver mon bonheur...style GetNestedTypes, ou autre...

    En tout cas, merci pour ta réponse

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/08/2006, 19h25
  2. Réponses: 5
    Dernier message: 26/07/2006, 17h01
  3. Réponses: 7
    Dernier message: 18/04/2006, 14h59
  4. [Reflection] Obtenir toutes les classes implémentant une interface
    Par Pill_S dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 20/04/2005, 16h48
  5. [Reflection] Classes implémentant une interface
    Par thibaut dans le forum API standards et tierces
    Réponses: 17
    Dernier message: 29/07/2004, 14h57

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