2010-11-30 40 views
0

Je suis nouveau à distance, je veux faire une application de barre d'état système qui sera utilisé pour effectuer certaines tâches en arrière-plan. J'ai 2 autres programmes qui ont besoin d'accéder aux objets modifiés par l'application de la barre d'état système, et ils font des choses avec eux.Est-il possible de contenir des instances d'objet via C# Remoting?

Il est plus ou moins comme ceci:

App Plateau ->tout charges en arrière-plan

Programme 1 -> Affiche quelques informations sur "MyObject" instancié dans les Tray App

Programme 2 -> Utilitaires pour "MyObject" instancié dans Tray App, qui se connecte à un serveur aléatoire ailleurs et faire des choses,

Mais je suis perdu sur tout le concept à distance.

J'utilise ceci:

RemotingConfiguration.RegisterWellKnownServiceType(commonInterfaceType, Constants.ServiceName, WellKnownObjectMode.Singleton);

Mais il semble que c'est une référence à la classe d'objet lui-même, pas une instance.

Comment puis-je traiter un objet dans une application et laisser d'autres applications l'utiliser? Je ne veux pas utiliser de bases de données ou sérialiser quelque chose dans un autre fichier.

+0

Avez-vous également consulté Windows Communication Foundation? Vous pouvez avoir un serveur qui présente un ensemble de méthodes de service qui vous permettent d'interroger l'objet - ou de présenter directement les méthodes de l'objet. –

Répondre

1

Pour enregistrer une de vos instances existantes et la publier sur Remoting, procédez comme suit.

Premier appel:

RemotingServices.SetObjecturilForMarshal(MarshalByRefObject, uri) 

appeler ensuite l'un des suivants surcharges:

System.Runtime.Remoting.RemotingServices.Marshal(MarshalByRefObject) 
System.Runtime.Remoting.RemotingServices.Marshal(MarshalByRefObject, String) 
System.Runtime.Remoting.RemotingServices.Marshal(MarshalByRefObject, String, Type) 

Cela devrait fonctionner.