Pregunta

Estoy intentando crear una aplicación que me permita ejecutar un método especificado en tiempo de ejecución en un servicio web arbitrario (cuya URL también proporcionaré en tiempo de ejecución). He descubierto cómo usar Type.InvokeMember para ejecutar el método arbitrario, pero cómo especifico el servicio web que se debe consumir sin crear una clase proxy.

Encontré ¿Cómo llamo a un servicio web sin ¿una referencia web? que me ayudará si ya tengo el WSDL y solo cambiará la URL, pero me gustaría poder llamar a cualquier servicio web y obtener el resultado.

Gracias.

¿Fue útil?

Solución

Debería echar un vistazo a Dynamic Proxy para WCF (lo siento, pero parece que puedo encontrar un enlace en este momento): es una biblioteca que le permite inspeccionar servicios en tiempo de ejecución (si publican sus metadatos) , y también invocar métodos (no se necesitan metadatos para hacerlo).

Editar: en realidad, parece que hay un proyecto en Codeplex para hacer exactamente eso: SIF

Otros consejos

Para WCF, debe tener la clase proxy o la interfaz que implementa el servicio, por lo que no es probable que pueda hacerlo a través de WCF (sin embargo, WCF es extensible sin fin, por lo que puede haber una manera.

Siempre puede girar un objeto HttpWebRequest y hacer un '' old-school '' llame al servicio y analice los resultados usted mismo.

Debería poder hacer su llamada simplemente usando WebRequest . Tendrá que formar el cuerpo del mensaje , pero eso no es muy difícil .

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