[Net Remoting] Object local + Events
Bonjour , je suis débutant en programmation et je developpe actuellement deux applications qui doivent communiquer entre elles (de manière bi directionnelle) au moyen de messages, et ce , sur le meme pc.
Après beaucoup de recherches , j'ai vu que le .Net Remoting était conseillé , j'ai donc essayé de mettre en place cette solution mais j'ai quelques problemes.
Tout d'abord le problème pour accéder à l'objet local sur le serveur, je ne vois pas comment faire.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
static void Main(string[] args)
{
try
{
RegisterChannel("SRPServer");
RemotingConfiguration.RegisterWellKnownServiceType(
typeof(remote),
"RemoteOperation",
WellKnownObjectMode.Singleton);
Console.WriteLine("Le serveur a démarré avec succés .... ");
Console.Read();
}
catch (Exception se)
{
Console.WriteLine("Connect error : " + se);
Console.Read();
Thread.Sleep(2000);
}
}
static void RegisterChannel(string name)
{
Hashtable properties = new Hashtable();
properties.Add("name", name);
properties.Add("portName", name);
properties.Add("typeFilterLevel", "Full");
IpcChannel channel = new IpcChannel(properties,
new BinaryClientFormatterSinkProvider(properties, null),
new BinaryServerFormatterSinkProvider(properties, null));
ChannelServices.RegisterChannel(channel);
} |
Donc là si j'ai tout compris , je register un channel pour communiquer , je publie un objet de type Remote , qui s'appellera RemoteOperation dans le mode Singleton.
Mais après comment accéder a cet objet sur le serveur ?
J'y arrive avec le client grâce a mgr = (Iremote.Iremote)Activator.GetObject(typeof(Iremote.Iremote ), "ipc://SRPServer/RemoteOperation"); , mais à quoi bon modifier un objet si il n'est utilisable que sur le client ?
Mon deuxième problème se situe au niveau des evenements.
J'aimerais pouvoir échanger des messages dans les 2 sens , et donc déclencher un événement lorsqu'une méthode est appellée par le serveur ou par le client.
J'en demande beaucoup je sais mais je suis un peu perdu là :oops:
Merci d'avance pour tout :)
PS : Ha oui , si vous trouvez le .NET Remoting non approprié pour ce que je veux faire , n'hésitez pas a me le dire ^^ (J'ai notamment lu une doc sur le COM+ et le Message Queuing )