Recibir eventos desde otro proyecto.

03/01/2006 - 16:30 por Alejandro | Informe spam
Hola.
Actualmente tengo 1 proyecto de tipo class library que contiene una clase
estatica con un evento estatico y un metodo publico estatico que lanza el
evento estatico. Despues por separado tengo 2 proyectos windows (app1 y
app2), en los que hago referencia al proyecto class library. App1 se
suscribe al evento del classlibrary, app2 ejecuta el metodo del class
library para lanzar el evento. Problema: el evento nunca le llega al App1.
Es posible lo que quiero hacer? Que estoy haciendo mal?
Gracias

Preguntas similare

Leer las respuestas

#1 José Escrich
03/01/2006 - 19:27 | Informe spam
Alejandro,

app1 y app2 corren en el mismo contexto de aplicación?
si tienes dos aplicaciones ó "ejecutables" nunca se dará esa condición porque
serían dos dominios de aplicación. La clase estática convive en el dominio
de aplicación.

Te sugiero que investigues remoting si quieres hacer que dos aplicaciones
dialoguen entre si ó si tienes un poco mas de tiempo investiga sobre indigo,
windows comunication foundation.

saludos, espero haberte ayudado

José Escrich
jescrich (a) gmail.com
http://latincoder.com

Hola.
Actualmente tengo 1 proyecto de tipo class library que contiene una
clase
estatica con un evento estatico y un metodo publico estatico que lanza
el
evento estatico. Despues por separado tengo 2 proyectos windows (app1
y
app2), en los que hago referencia al proyecto class library. App1 se
suscribe al evento del classlibrary, app2 ejecuta el metodo del class
library para lanzar el evento. Problema: el evento nunca le llega al
App1.
Es posible lo que quiero hacer? Que estoy haciendo mal?
Gracias
Respuesta Responder a este mensaje
#2 A.Poblacion
03/01/2006 - 22:02 | Informe spam
"Alejandro" <@> wrote in message
news:
Hola.
Actualmente tengo 1 proyecto de tipo class library que contiene una clase
estatica con un evento estatico y un metodo publico estatico que lanza el
evento estatico. Despues por separado tengo 2 proyectos windows (app1 y
app2), en los que hago referencia al proyecto class library. App1 se
suscribe al evento del classlibrary, app2 ejecuta el metodo del class
library para lanzar el evento. Problema: el evento nunca le llega al App1.
Es posible lo que quiero hacer? Que estoy haciendo mal?



Lo que estás haciendo mal es que si App1 y App2 son dos EXEs de Windows,
cada uno crea al ejecutarlo un dominio de aplicación distinto, y por tanto
cada uno de ellos carga una copia separada del classlibrary. En
consecuencia, el evento, aunque sea estático, es distinto para cada una de
las aplicaciones, y por eso cuando una lo lanza la otra no lo recibe.

Una de las formas de conseguir lo que quieres es utilizar los "loosely
coupled events" de COM+ (Servicios de Componentes), que se inventaron para
eso (que distintas aplicaciones independientes se puedan suscribir a eventos
lanzados por otra aplicación distinta). Hacer que tu libreria funcione
dentro de COM+ no es complicado, ya que .Net trae todo lo necesario para
ello (busca en el manual el espacio de nombres System.EnterpriseServices),
pero en cambio hacer la suscripción de los eventos sí que tiene una cierta
complejidad porque no están abstraídos dentro de las librerías del framework
(al menos en la versión 1) y hay que tirar del ComAdmin que es un objeto
COM. Cuesta un pelín hacerlo la primera vez, pero luego funciona muy bien.
Respuesta Responder a este mensaje
#3 Alejandro
04/01/2006 - 21:29 | Informe spam
"A.Poblacion" wrote in
message news:
"Alejandro" <@> wrote in message
news:
> Hola.
> Actualmente tengo 1 proyecto de tipo class library que contiene una


clase
> estatica con un evento estatico y un metodo publico estatico que lanza


el
> evento estatico. Despues por separado tengo 2 proyectos windows (app1 y
> app2), en los que hago referencia al proyecto class library. App1 se
> suscribe al evento del classlibrary, app2 ejecuta el metodo del class
> library para lanzar el evento. Problema: el evento nunca le llega al


App1.
> Es posible lo que quiero hacer? Que estoy haciendo mal?

Lo que estás haciendo mal es que si App1 y App2 son dos EXEs de


Windows,
cada uno crea al ejecutarlo un dominio de aplicación distinto, y por tanto
cada uno de ellos carga una copia separada del classlibrary. En
consecuencia, el evento, aunque sea estático, es distinto para cada una de
las aplicaciones, y por eso cuando una lo lanza la otra no lo recibe.

Una de las formas de conseguir lo que quieres es utilizar los "loosely
coupled events" de COM+ (Servicios de Componentes), que se inventaron para
eso (que distintas aplicaciones independientes se puedan suscribir a


eventos
lanzados por otra aplicación distinta). Hacer que tu libreria funcione
dentro de COM+ no es complicado, ya que .Net trae todo lo necesario para
ello (busca en el manual el espacio de nombres System.EnterpriseServices),
pero en cambio hacer la suscripción de los eventos sí que tiene una cierta
complejidad porque no están abstraídos dentro de las librerías del


framework
(al menos en la versión 1) y hay que tirar del ComAdmin que es un objeto
COM. Cuesta un pelín hacerlo la primera vez, pero luego funciona muy bien.



Respuesta Responder a este mensaje
#4 Alejandro
04/01/2006 - 21:29 | Informe spam
Muchas Gracias!!
Pero tendrias un ejemplo. Encontre esto en el MSDN pero nose como aplicarlo:
http://msdn.microsoft.com/library/d...events.asp

Gracias

"A.Poblacion" wrote in
message news:
"Alejandro" <@> wrote in message
news:
> Hola.
> Actualmente tengo 1 proyecto de tipo class library que contiene una


clase
> estatica con un evento estatico y un metodo publico estatico que lanza


el
> evento estatico. Despues por separado tengo 2 proyectos windows (app1 y
> app2), en los que hago referencia al proyecto class library. App1 se
> suscribe al evento del classlibrary, app2 ejecuta el metodo del class
> library para lanzar el evento. Problema: el evento nunca le llega al


App1.
> Es posible lo que quiero hacer? Que estoy haciendo mal?

Lo que estás haciendo mal es que si App1 y App2 son dos EXEs de


Windows,
cada uno crea al ejecutarlo un dominio de aplicación distinto, y por tanto
cada uno de ellos carga una copia separada del classlibrary. En
consecuencia, el evento, aunque sea estático, es distinto para cada una de
las aplicaciones, y por eso cuando una lo lanza la otra no lo recibe.

Una de las formas de conseguir lo que quieres es utilizar los "loosely
coupled events" de COM+ (Servicios de Componentes), que se inventaron para
eso (que distintas aplicaciones independientes se puedan suscribir a


eventos
lanzados por otra aplicación distinta). Hacer que tu libreria funcione
dentro de COM+ no es complicado, ya que .Net trae todo lo necesario para
ello (busca en el manual el espacio de nombres System.EnterpriseServices),
pero en cambio hacer la suscripción de los eventos sí que tiene una cierta
complejidad porque no están abstraídos dentro de las librerías del


framework
(al menos en la versión 1) y hay que tirar del ComAdmin que es un objeto
COM. Cuesta un pelín hacerlo la primera vez, pero luego funciona muy bien.



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida