Pregunta

soy nuevo en comunicación remota, quiero hacer una aplicación de bandeja del sistema que se utilizará para realizar algunas tareas en segundo plano. Tengo otros 2 programas que necesitan acceder a los objetos modificados por la aplicación de la bandeja del sistema, y ??las hago cosas con ellos.

Es más o menos así:

bandeja de aplicaciones -> cargas todo en el fondo

Programa 1 -> Muestra algo de información acerca de "MiObjeto" instancia dentro de la bandeja de aplicaciones

Programa 2 -> Utilidades para "MiObjeto" instancia dentro de la bandeja de aplicaciones, que se conecta a un servidor aleatorio en otros lugares y hacer cosas,

Pero estoy perdido en todo el concepto de interacción remota.

Estoy usando esto:

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

Sin embargo, parece que es una referencia a la misma clase de objeto, no una instancia del mismo.

¿Cómo se puede procesar un objeto dentro de una aplicación y dejar que otras aplicaciones lo utilizan? No quiero utilizar bases de datos, o serializar cualquier cosa en otro archivo.

¿Fue útil?

Solución

Para registrar una de las instancias existentes y publicarla en Remoting haga lo siguiente.

Primera llamada:

RemotingServices.SetObjecturilForMarshal(MarshalByRefObject, uri)

A continuación, llamar a uno de los siguientes sobrecargas:

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

Eso debería funcionar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top