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
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
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
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ... ObjAliasIPC.Commande("tutu", "tata")
Avez-vous des suggestions ?
Avec mes remerciements !
Partager