Bonjour,

J'ai posté il y a quelques jours sur vos forums pour vous questionner sur la communication entre un formulaire et un service Windows. Vous m'avez orienté vers les canaux nommés, et j'ai dans cette optique opté pour la nouvelle fonctionnalité de Remoting : ICP.

Je vous présente ce que je souhaite faire, c'est très simple :

SERVICE ========Bibliothèque de classe===== FORM


Mon service est "en écoute" d'un message que va lui envoyer le formulaire suite à un clic sur un bouton.
J'ai suivi le modèle présenté ici http://anoriginalidea.wordpress.com/...tion-in-vbnet/
Le service et le client ont comme référence une bibliothèque de classe partagée que j'ai créé qui contient deux classes :

- une classe avec une méthode que j'appelle depuis le clic du formulaire, avec un RaiseEvent


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
 
 
Public Delegate Sub CommandeServiceEventHandler(ByVal sender As Object, ByVal e As CommandeServiceEventArgs)
Public Class ServiceIPC
    Inherits MarshalByRefObject
 
    Public ObjAliasIPC As ServiceIPC
    Public AliasIPC As New IpcChannel()
 
    Public Event CommandeService As CommandeServiceEventHandler
 
    Public Sub Commande(ByVal Action As String, ByVal Donnee As String)
        RaiseEvent CommandeService(Me, New CommandeServiceEventArgs(Action, Donnee))
    End Sub
End Class


- une classe EventArgs de mon évènement

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
 
 
Public Class CommandeServiceEventArgs
    Inherits EventArgs
 
    Public PublicCommande As String = ""
    Public PublicDonnee As String = ""
 
    Public Sub New(ByVal ParamCommande As String, ByVal ParamDonnee As String)
        PublicCommande = ParamCommande
        PublicDonnee = ParamDonnee
    End Sub
    Public ReadOnly Property Commande() As String
        Get
            Return PublicCommande
        End Get
    End Property
    Public ReadOnly Property Donnee() As String
        Get
            Return PublicDonnee
        End Get
    End Property
End Class
J'appelle, dans le clic sur le bouton du formulaire, une méthode :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
 
...
ObjAliasIPC.Commande("tutu", "tata")
Problème : en pas à pas détaillé, je me vois bien rentrer dans la procédure de la classe ServiceIPC, je passe sur le RaiseEvent, et rien d'autre ne se passe ! Je ne passe pas dans le constructeur de ma classe CommandeServiceEventArgs

Avez-vous des suggestions ?

Avec mes remerciements !