Problemas con Reflection

11/02/2004 - 14:27 por Marcelo Belén | Informe spam
Hola a todos:

Tengo que crear dinamicamente una Web Refercence, y
luego cargar clases que estan en esa referencia por lo que
uso reflection para cargarla, Ya se el nombre y demases,
pero no las carga, pero sin tocar el codigo si vuelvo a
ejecutar como la web reference ya estaba creada no la
vuelvo a crear y en ese momento si encuentra todas las
clase, creo que es algo asi como refrescar en tiempo de
ejecucion. pero no he encontrado la forma de hacerlo.



Gracias a todos,
Marcelo.

Preguntas similare

Leer las respuestas

#1 Alejandro Mezcua
11/02/2004 - 18:09 | Informe spam
Hola, Marcelo.

Si entiendo bien lo que propones, dices que te gustaría que al cambiar la
firma del servicio Web (nuevos métodos, otros parámetros, etc) por
reflection pudieses acceder los nuevos elementos.

Si es este tu problema, aunque en principio parece que esto sería así de
sencillo, no es así. Si miras lo que hace Visual Studio, realmente está
leyendo el WSDL del servidor y creando una clase local (reference.cs)
asociada a la referencia Web (el proxy) que, una vez creada, es estática.
Cuando actualizas la referencia en el proyecto simplemente estás volviendo a
leer el WSDL y, si es diferente del anterior, vuelves a generar
reference.cs.

Una vez compilado el proyecto, reference.cs es estático, con lo que mediante
reflection sólo puedes leer el contenido de la instancia del proxy.

Dispones de una utilidad, wsdl.exe, que te permite generar clases
dinámicamente. En principio la podrías usar en tu aplicación para generar el
código del WSDL dado, compilarlo, generar el assembly y usarlo en tu código
en tiempo de ejecución, donde si estarían las modificaciones obtenidas
mediante reflection.

No se si es este exactamente tu caso o no, pero si lo es y trabajas en ello
coméntanos cómo te va ;-)

Un saludo,

Alejandro Mezcua
MVP .NET
Zaltor Soluciones Informáticas

"Marcelo Belén" wrote in message
news:e57001c3f0a2$d1059cc0$
Mostrar la cita
#2 Anonimo
11/02/2004 - 20:56 | Informe spam
Alejandro, gracias por la mano.

En nuestro caso ya tenemos resuelta la generacíón del
Proxy del WS. Esto lo hacemos con el método
AddWebReference, que es una version programática (del
namespace DTE) del agregado de referencias web mediante
Visual Studio. Otra vía posible seria con el utilitario
wsdl.exe que tu comentás, y luego generando una DLL a
partir de el.
El efecto de ambas es el mismo, creo.

El problema particular nuestro es que si bien esta
referencia queda visiblemente agregada, debemos detener la
ejecucion y recompilar para que se haga efectiva.

Resumiendo: ¿Cómo se recompila una assembly en tiempo de
ejecución, de modo que los cambios queden reflejados en
esa misma corrida, y no en la siguiente?

desde ya gracias.


Mostrar la cita
que al cambiar la
Mostrar la cita
etc) por
Mostrar la cita
esto sería así de
Mostrar la cita
realmente está
Mostrar la cita
(reference.cs)
Mostrar la cita
creada, es estática.
Mostrar la cita
simplemente estás volviendo a
Mostrar la cita
generar
Mostrar la cita
con lo que mediante
Mostrar la cita
del proxy.
Mostrar la cita
generar clases
Mostrar la cita
aplicación para generar el
Mostrar la cita
usarlo en tu código
Mostrar la cita
modificaciones obtenidas
Mostrar la cita
y trabajas en ello
Mostrar la cita
wrote in message
Mostrar la cita
que
Mostrar la cita
#3 Leonardo Moreno Forero
11/02/2004 - 21:59 | Informe spam
Hola Marcelo,

Con las clases Microsoft.CSharp.Compiler y
Microsoft.CSharp.CSharpCodeProvider puedes generar y compilar código en C#.

Atentamente,

Leonardo Moreno Forero
MCP - MCSD
Bogotá - Colombia


escribió en el mensaje
news:eebc01c3f0d9$25866500$
Alejandro, gracias por la mano.

En nuestro caso ya tenemos resuelta la generacíón del
Proxy del WS. Esto lo hacemos con el método
AddWebReference, que es una version programática (del
namespace DTE) del agregado de referencias web mediante
Visual Studio. Otra vía posible seria con el utilitario
wsdl.exe que tu comentás, y luego generando una DLL a
partir de el.
El efecto de ambas es el mismo, creo.

El problema particular nuestro es que si bien esta
referencia queda visiblemente agregada, debemos detener la
ejecucion y recompilar para que se haga efectiva.

Resumiendo: ¿Cómo se recompila una assembly en tiempo de
ejecución, de modo que los cambios queden reflejados en
esa misma corrida, y no en la siguiente?

desde ya gracias.


Mostrar la cita
que al cambiar la
Ads by Google
Search Busqueda sugerida