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

Dotnet Discussion :

Classe VS.Net 2005 basée sur interface VS.Net 2003 ?


Sujet :

Dotnet

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2002
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2002
    Messages : 10
    Points : 12
    Points
    12
    Par défaut Classe VS.Net 2005 basée sur interface VS.Net 2003 ?
    Bonjour


    "Nouveau" sur VS.Net 2005, je suis en train de faire des tests de développement de plugins (sur base d'une interface réalisée en VB.Net 2003, ça ça fonctionne bien) à intégrer dans un frontal développé lui aussi en 2003.

    Le hic : mon test montre que la classe compilée en VB.Net 2005 n'est pas "lisible" par le frontal en VB.Net 2003, malgré qu'elle soit bien basée sur une interface correcte

    J'aurais pensé qu'on pouvait indépendamment "lire" des DLL quelle que soit la version du moment que l'interface utilisée soit la même...


    En clair, j'ai :
    - 1 exécutable MonAppli.exe (VB.Net 2003)
    - 1 interface iPlugin.dll (VB.Net 2003)
    - des plugins Plugin01.dll, Plugin02.dll, etc... développés en VB.Net 2003

    Je veux rajouter de nouveaux plugins mais développés en VB.Net 2005 ! Et j'obtiens le message : "Le format du fichier Plugin2005.dll n'est pas valide"


    Voici le code de chargement des plugins dans mon .exe :

    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
    32
    33
    34
    35
    36
    37
    38
    39
            '-------------------- CHARGEMENT DES PLUGINS --------------------
            Dim _oTypes() As Type                                                           'Liste de types
            Dim _sPluginDirectory As String = IO.Path.GetDirectoryName( _
                System.Reflection.Assembly.GetCallingAssembly.Location)                     'Répertoire courant
            Dim _sPlugs() As String = IO.Directory.GetFiles(_sPluginDirectory, "GI*.dll")   'Filtre sur les DLL
     
            For Each _sPlug As String In _sPlugs
                'Pour chaque DLL du répertoire
                Try
                    'Tentative de chargement de l'assembly
                    Dim _oAss As System.Reflection.Assembly = _
                        System.Reflection.Assembly.LoadFrom(_sPlug)
                    _oTypes = _oAss.GetTypes()
                    For Each _oType As Type In _oTypes
                        'Pour chaque type contenu dans l'assembly
                        If Not _oType.GetInterface("GIAUBE.iPlugin") Is Nothing Then
                            'Plug-in trouvé !
                            'Création d'une instance du plugin pour récup des infos le concernant
                            Dim _Obj As Object = _oAss.CreateInstance(_oType.Namespace & "." & _oType.Name)
                            'Ajout de l'icône dans la ListImage et attribution à l'item dans la liste
                            _oChargement.SetLoading("Chargement du module " & CType(_Obj, iPlugin).Libellé & "...")
                            ilsIcones.Images.Add(CType(_Obj, iPlugin).Icone)
                            With _oLvwPlugins
                                'Ajout de l'élément correspondant dans le ListView
                                Dim _It As New ListViewItem(CType(_Obj, iPlugin).Libellé, ilsIcones.Images.Count - 1)
                                _It.SubItems.Add(_oType.Namespace & "." & _oType.Name)  'Type à implémenter
                                _It.SubItems.Add(CType(_Obj, iPlugin).Description)      'Description
                                _It.SubItems.Add(_sPlug)                                'Chemin DLL
                                _It.Tag = CType(_Obj, iPlugin).IDPlugin                 'ID module correspondant
                                .Items.Add(_It)
                            End With
                        End If
                    Next
                Catch ex As Exception
                    'Rien
                    MsgBox(ex.Message)
                End Try
            Next
            '-------------------- FIN DU CHARGEMENT DES PLUGINS --------------------

    Avez-vous une solution à ce problème ?
    "Le mieux est l'ennemi du bien"
    C.G.

  2. #2
    Membre à l'essai
    Inscrit en
    Août 2002
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2002
    Messages : 10
    Points : 12
    Points
    12
    Par défaut
    La solution : en fait il n'y en a pas.

    Une application en 2005 peut utiliser des classes réalisées en 2003 (et in extenso en 2005) mais pas l'inverse. Il me faut donc basculer mon application en .Net 2005


    Voilà (si un jour certains se posent la question !)
    "Le mieux est l'ennemi du bien"
    C.G.

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

Discussions similaires

  1. [VB.NET 2005] XML sur une ligne !
    Par ricil78 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 10/01/2008, 16h41
  2. vb.net 2005 pb sur une textbox
    Par libremax dans le forum Windows Forms
    Réponses: 2
    Dernier message: 06/01/2008, 19h44
  3. [VB.net 2005] Databinding sur menuItem
    Par WriteLN dans le forum Windows Forms
    Réponses: 5
    Dernier message: 01/10/2007, 18h45
  4. [VB.NET 2005] Problème sur une galerie photo ..
    Par jobunn dans le forum VB.NET
    Réponses: 5
    Dernier message: 29/05/2007, 15h09
  5. Base Access interface VB.net
    Par yohann007 dans le forum VB.NET
    Réponses: 4
    Dernier message: 02/03/2007, 11h34

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