Bonjour,
Je suis nouveau sur ce forum et j'espère avoir posté dans la bonne section.
Voici mon problème :
J'ai 2 applications (WPF) l'une est cliente et l'autre serveur et communique actuellement avec WCF.
Cela fonctionne très bien mais j'aimerais que du coté de mon serveur je puisse accéder à l'interface graphique (récupérer et écrire des valeurs dans les différents controles).
Voici les pistes que j'ai déja exploré :
1) Coté Server : une classe qui implémente l'interface serveur
Je démarre alors mon service de la facon suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 [ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Reentrant, InstanceContextMode = InstanceContextMode.PerSession, UseSynchronizationContext = false)] public class FxComServer : IServer { #region IServer Membres public string ContractOne(int val1, int val2) { return (val1 + val2).ToString(); } #endregion }
--> Cela fonctionne mais évidemment ContractOne n'as pas accès au controle de Window2
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 partial class Window2 : Window { public Window2() { InitializeComponent(); //Instantiate new ServiceHost myServiceHost = new ServiceHost(typeof(Window2)); NetTcpBinding binding = new NetTcpBinding(); ServiceEndpoint endPoint = myServiceHost.AddServiceEndpoint(typeof(IServer), binding, "net.tcp://localhost:4000"); //Open myServiceHost myServiceHost.Open(); } }
2) J'ai ensuite essayé que Window2 implémente directement IServer mais cela me génère une exception lors de l'appel du service :
Voilà j'espère avoir été assez clair sur mon problème.Le thread appelant doit être en mode STA, comme l'exigent de nombreux composants de l'interface utilisateur.
Merci d'avance aux personnes qui tenterons de m'aider.
Partager