Allocation dynamique de dll en vb.net par les méthodes de system.reflection

Soyez le premier à donner votre avis sur cette source.

Vue 12 333 fois - Téléchargée 772 fois

Description

le code suivant permet d'allouer une dll dynamiquement, c'est à dire dans le code vb.
Dans certain cas, il peut être nécessaire de faire cette allocation en dynamique et non plus dans les références du projet et ensuite de faire appel aux procédures de la dll.

Source / Exemple :


Private Sub BtdAlouerDll_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtdAlouerDll.Click
        Dim a As [Assembly] = [Assembly].LoadFrom(TxtCheminDLL.Text)
        Dim mytypes As Type() = a.GetTypes()
        Dim flags As BindingFlags = BindingFlags.NonPublic Or BindingFlags.Public Or BindingFlags.Static Or _
            BindingFlags.Instance Or BindingFlags.DeclaredOnly
        Dim t As Type
        Dim Params() As Object

        For Each t In mytypes
            Dim mi As MethodInfo() = t.GetMethods(flags)
            Dim obj As [Object] = Activator.CreateInstance(t)

            Dim m As MethodInfo

            ReDim Params(0)
            Params(0) = "Message texte"
            For Each m In mi
                m.Invoke(obj, Params)
            Next m
        Next t

    End Sub

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
235
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
16 mai 2011
2
Ce code fonctionne très bien, par contre, une fois la fonction utilisé, la dll reste instancé.
J'ai crée une dll avec un "sub new", ainsi que les fonctions que j'appelle.
Lorsque j'appelle ma fonction, la dll est instancée, le sub new est appelé puis la fonction. Mais une fois la fonction utilisé, la dll reste instancié et je ne sais pas comment la "libérer" (si vous essayer d'appeler votre fonction, une fois terminée, vous ne pouvez pas supprimer la dll tant que le programme principal qui l'a appelé est encore ouvert).

Savez-vous comment faire? (j'ai posté ce commentaire sur ce code aussi (http://www.vbfrance.com/codes/APPELLER-DLL-DYNAMIQUEMENT-DANS-CODE_35700.aspx) car c'est le même problème)
Messages postés
24
Date d'inscription
jeudi 22 décembre 2005
Statut
Membre
Dernière intervention
8 février 2009

Une bonne source sur laquelle j'ai pu me baser pour faire un grand bon en avant, en mixant celle-ci et une autre source disponible ici:
http://www.vbfrance.com/codes/ALLOCATION-DYNAMIQUE-DLL-VB-NET-METHODES-SYSTEM-REFLECTION_35496.aspx
Les deux sources se completent, et vont me permettre d'enfin avancer dans mon systeme de plugin :)

Merci encore :D

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.