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 :

[C#][débutant] créer instance d'1 interface se trouvant dans une dll par la reflexion


Sujet :

C#

  1. #1
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 97
    Points : 76
    Points
    76
    Par défaut [C#][débutant] créer instance d'1 interface se trouvant dans une dll par la reflexion
    le probleme est dans l'intitulé; au fait j'arrive pas à créer une instance d'une interface (dans un web service) se trouvant dans une dll , j'ai utilisé la réflexion (pour acceder à l'interfece dans la dll).
    voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     private object traitement()
        {
             object instance = null;
             Assembly Interface = Assembly.LoadFrom("C:\\Mes DLL\\DLL.dll");
             Type[] types = Interface.GetTypes(); 
             instance = Activator.CreateInstance(types[0],true);
             return instance;        
        }
    en fait "types[0]" juste par ce que l'interface est le seul type dans le namespace qui est lui aussi le seule namespace dans ma dll .
    voici l'erreur qui se gènere :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    System.MissingMethodException: Cannot create an instance of an interface.
       at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck)
       at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache)
       at System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache)
       at System.Activator.CreateInstance(Type type, Boolean nonPublic)
       at Service.traitement() in c:\Documents and Settings\lok\My Documents\Visual Studio 2005\WebSites\WebSite15........
    quelqu'un a une explication ??? j'attends la réponse. et merci d'avence !

  2. #2
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 97
    Points : 76
    Points
    76
    Par défaut
    eeeeooo pas de réponse , vous savez que j'arrive pas à avencer tant que j'ai pas résolu ce problème . De l'aide SVP , et vous me dites si je dois réexpliquer. allé salut !

  3. #3
    Membre habitué Avatar de akecoocoo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2004
    Messages : 78
    Points : 146
    Points
    146
    Par défaut
    Mmmh, les interfaces sont des contrats, il est impossible de les instancier...

    ICollection macoll = new ICollection() <--- incorrect.

    Tu ne peux instancier que des classes qui implémentent ces interfaces :

    ICollection macoll = new PinsCollection() <-- correct si class PinsCollection : ICollection

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par akecoocoo
    Mmmh, les interfaces sont des contrats, il est impossible de les instancier...
    +1....

  5. #5
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 97
    Points : 76
    Points
    76
    Par défaut
    d'acord d'acord , j'ai très bien compris la leçon. une betise à ne pas refaire ! merci akecoocoo
    Thomas pour quoi +1 ?? alors moi je dois avoir -1

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 12
    Dernier message: 05/01/2015, 13h42
  2. Réponses: 1
    Dernier message: 19/03/2008, 07h57
  3. Réponses: 16
    Dernier message: 06/08/2006, 23h45
  4. TForm dans une DLL avec utilisation d'Interface
    Par guedelmalin dans le forum Langage
    Réponses: 13
    Dernier message: 17/06/2005, 11h58
  5. Créer un champ contenant un son wav dans une base Paradox
    Par Grandad95 dans le forum Bases de données
    Réponses: 4
    Dernier message: 21/07/2004, 17h00

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