[VB.Net] Variables API

    Publicités

Users Who Are Viewing This Thread (Total: 0, Members: 0, Guests: 0)

Status
Not open for further replies.
Apr 26, 2011
1,315
2
944
26
In my home
Discord
brokeos
Bonsoir à tous, j'ai un problème concernant la création, l’initialisation et la récupération d'une variable par API.

J'ai créer mon Interface d'API.
J'ai ajouter une property (qui porte le nom de ma variable).
Je la modifie via mon application maitre.

Seulement c'est lorsque je récupère sur le plugin la variable, il ne met rien !

Voici mon code :

Interface d'API :
Code:
Public Interface IPlugin
    Property ip As String
End Interface

Le plugin
Code:
Imports API

Public Class Main
    Implements API.IPlugin
    Public Property ip As String Implements API.IPlugin.ip
End Class

Code:
Une exception non gérée du type 'System.NullReferenceException' s'est produite dans Console.dll

Informations supplémentaires : La référence d'objet n'est pas définie à une instance d'un objet.
 
Last edited:

ragnarock

Membre actif
Mar 22, 2010
194
0
917
edit: j'ai lu trop vite.. mais je laisse quand même la réponse^^
L'interface et dans une dll, le plugin est dans Console.dll et t'utilise ces dll dans un autre programme c'est ça ?

j'ai essayé comme ça :

API.dll
Code:
Public Interface IPlugin
    Property ip As String

    Sub Show()
End Interface
TestPlugin.dll
Code:
Imports API

Public Class PluginIp
    Implements IPlugin

    Public Property ip As String Implements IPlugin.ip

    Public Sub Show() Implements IPlugin.Show
        MsgBox(_ip)
    End Sub
End Class
MainApp.exe
Code:
Imports API
Imports TestPlugin

Public Class Form1

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim plugin As IPlugin = New PluginIp
        plugin.ip = "ssdfddsfdfdffsdsfd"
        plugin.Show()
    End Sub
End Class
Et tout marche bien, il faudrait d'autres infos pour qu'on puisse t'aider^^
Le plugin, tu le charge dans un AppDomain différent ? C'est vite la merde quand on veut faire un système de plugin proprement en utilisant plusieurs AppDomain.

___________________________________________________________
(l'ancien message)

Yop, ça fais ça quand t'essayes d’accéder au champ ip ?

Si oui c'est juste que tu l'initialise pas..

Un exemple qui marche:
Code:
Public Interface IPlugin
    ReadOnly Property ip() As String
End Interface

Code:
Public Class dsffdsfd
    Implements IPlugin

    Public ReadOnly Property ip As String Implements IPlugin.ip
        Get
            Return "fghgfhdghf"
        End Get
    End Property

End Class

Code:
Public Interface IPlugin
    Property ip() As String
End Interface
Code:
Public Class dsffdsfd
    Implements IPlugin

    Private _ip As String = "dffdfd"

    Public Property ip As String Implements IPlugin.ip
        Get
            Return _ip
        End Get
        Private Set(value As String)
            _ip = value
        End Set
    End Property

End Class

Code:
Public Interface IPlugin
    Property ip As String
End Interface
Code:
Public Class dsffdsfd
    Implements IPlugin

    Public Property ip As String Implements IPlugin.ip

    Public Sub New()
        ip = "dfgfdg"
    End Sub
End Class


Au passage, pourquoi le Vb ? (Attention, j'passe en mode C# fanboy, et c'est un avis perso, si pour toi c'est mieux le vb, y'a aucune raison de pas en faire^^) C'est moins intuitif, compréhensible, plus limité et y'a plus de code pour la même chose, voilà le premier exemple en C# :
Code:
    public interface IPlugin
    {
        string ip { get; }
    }
Code:
    class hgjhgj : IPlugin
    {
        public string ip { get { return "sadffds"; } }
    }
 
Last edited:
Apr 26, 2011
1,315
2
944
26
In my home
Discord
brokeos
Merci ragnarock de ta réponse, mais je ne l'ai pas utilisé !
Je m'explique : Au lieu de définir la variable dans l'interface, je l'ai défini dans un nouveau module présent dans API.dll
Code:
Public Module MesVariables
Public ip As String
Et grâce à ça, je peu accéder à tout moment à ma variable et la modifier !

Résolu
 
Status
Not open for further replies.