Referencia única ¿como?

19/05/2006 - 01:30 por Gustavo Arriola | Informe spam
Hola a todos!

Tengo una solución que se componen de varios proyectos que apuntan a un
mismo
servicio web.

Desearía crear un nuevo proyecto y ahi crear la referencia "directa" al
servicio web. Luego este nuevo proyecto hacer referencia en todos los demas.

La idea es: Si modifico el servicio web, actualizar solo el último proyecto
para que automáticamente se reflejen en las demás. Caso contrario, tendría
que actualizar la referencia al webservices en todos los proyectos.

El problema que tengo es que no tengo acceso a algunas propiedades a la
instancia del Web
Service (por ejemplo: Credentials). Pienso que es a causa de que estoy
accediendo desde otro ensamblado.

¿Cómo puedo corregir esto?

Desde ya muchas gracias!

Gustavo Arriola

Preguntas similare

Leer las respuestas

#1 Fran Peula Ariza
19/05/2006 - 13:36 | Informe spam
En lo que comentas no te puedo ayudar exactamente, pero en lugar de hacer
otro proyecto con la referencia al servicio web, te propongo otra solución
para lo mismo que utilizas. Con esto consigues referenciar al WS en varios
proyectos, pero si cambias la dirección del mismo, con una modificación en un
sitio, ya no tienes que modificar nada más.
A grandes rasgos se trata de utilizar un fichero de configuración
(app.config para WinForms o web.config para asp.net) y en él agregar a la
sección appSettings la ruta del WS, único sitio donde deberás cambiarla en
caso de necesidad.

Después, utilizar una clase proxy y a través de ella, utilizar esa ruta del
fichero de configuración para apuntar al servicio web.

Por ejemplo, vamos a suponer que tienes el WS en localhost y en un servidor
llamado ServidorWS. Pues puedes hacer algo como lo siguiente:

Primero agregarás una referencia web con el explorador de soluciones de VS,
y una vez que la hayas agregado, en su ventana de propiedades, cambia el
atributo "comportamiento" a dinámico. Después de ello, puedes hacer el
siguiente código:

C#

// Creamos una instancia del servicio web
ProxyWS.ServWeb proxy = new ProxyWS.ServWeb();
// Ponemos la URL en proxy
proxy.Url = System.Configuration.ConfigurationSettings.AppSettings["RutaWS"];

VB.NET
'Creamos una instancia del servicio web
Dim proxy As New ProxyWS.ServWeb
'Ponemos la URL en proxy
proxy.Url = System.Configuration.ConfigurationSettings.AppSettings("RutaWS")

Y luego, en el archivo de configuración, tendrás que tener algo así como:

<configuration>
<appSettings>
<add key="RutaWS" value="http://localhost/WS/ServWeb.asmx"/>
</appSettings>
</configuration>

Así, si utilizas ese código cada vez que agregues tu WS en todos tus
proyectos, sólo tendrás que cambiar la ruta en el fichero de configuración.

Espero que te sirva de ayuda

Fran


"Gustavo Arriola" escribió:

Hola a todos!

Tengo una solución que se componen de varios proyectos que apuntan a un
mismo
servicio web.

Desearía crear un nuevo proyecto y ahi crear la referencia "directa" al
servicio web. Luego este nuevo proyecto hacer referencia en todos los demas.

La idea es: Si modifico el servicio web, actualizar solo el último proyecto
para que automáticamente se reflejen en las demás. Caso contrario, tendría
que actualizar la referencia al webservices en todos los proyectos.

El problema que tengo es que no tengo acceso a algunas propiedades a la
instancia del Web
Service (por ejemplo: Credentials). Pienso que es a causa de que estoy
accediendo desde otro ensamblado.

¿Cómo puedo corregir esto?

Desde ya muchas gracias!

Gustavo Arriola



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