Compartir variables y métodos de una misma DLL entre dos aplicaciones

dj ciego
14 de Mayo del 2005
Hola,
el ejemplo de lo que intento conseguir es muy simple, pero no hay forma de que me funcione correctamente:
a) He creado una dll y la he añadido al GAC.
Esta dll tiene una variable pública y shared de tipo Form, y un método público y shared que cambia el Text de este form.
b) Creo una aplicación A que tiene cono referencia esta dll. La dll la recoge del GAC, por lo que no crea copia local en el directorio. En el Form_Load creo una variable del tipo de la clase de la dll, sin instanciar ya que la variable a la que voy a acceder es de tipo shared. Le asigno a la variable el formulario de la aplicación A. Por su lado, creo un botón que al hacer Click, llame al método shared de la dll, con lo que se cambia el Text del formulario, ya que este se había asignado previamente en el Load. Esto funciona correctamente, y sin instanciar la clase, ya que uso Shared.
c) El problema viene en que creo un programa B, que también accede a la dll, y que se ejecutaría posteriormente al programa A. Desde el programa B quiero cambiar el Text del programa A llamando al método de la dll, ya que al haber sido cargado primero en memoria, y ser de tipo shared la variable y el método, sería de esperar que accediera a ese Form. Pues me encuentro con que teniendo en ejecución el programa A, al ejecutar el programa B y llamar al método sin especificar cual es el Form en la dll, me sale una NullReferenceException... Esto me hace pensar que no están compartiendo la misma situación en memoria de la DLL, ya que el la variable Form estaba previamente especificada por el programa A... Eso es lo que quiero averiguar, si hay forma de que compartan esa unica situación en memoria de la DLL, para poder acceder desde un programa al Form del otro, ya que si el programa B accediera a la misma instancia de dll que ejecuta el programa A, ya tendría asignada la variable Form (que en el ejemplo es una tonteria, evidentemente lo necesito para cosas mucho más complejas)
Muchas gracias por adelantado, no sé si me habré conseguido explicar con claridad...