Pregunta

¿Alguien tiene algún tipo de experiencia con la programación dinámica usando WCF?Por programación dinámica me refiero al consumo de tiempo de ejecución de WSDL.He encontrado una entrada/herramienta de blog:http://blogs.msdn.com/vipulmodi/archive/2006/11/16/dynamic-programming-with-wcf.aspx

¿Alguien aquí ha encontrado buenas herramientas para esto?

¿Fue útil?

Solución

Este es uno de los aspectos más extraños de WCF.Puedes crear dinámicamente un channelfactory, pero solo con un tipo conocido.

Se me ocurrió una solución que no es perfecta, pero funciona:

Cree una interfaz, "IFoo", que contenga un único método, digamos Execute().En su ESB, cree dinámicamente un ChannelFactory<IFoo> para el punto final al que desea conectarse.Establezca las propiedades de conexión (URI, etc.).

Ahora, puede adjuntar servicios dinámicamente a su ESB, siempre que siempre implementen la interfaz "IFoo".

Otros consejos

Lo hice hace mucho tiempo con los servicios web SOAP.Había una herramienta en GotDotNet que creo que se ha convertido Servicios Web Estudio Express, que tenía un código que inspeccionaba/analizaba un archivo WSDL y le permitía llamarlo.

Creo que se supone que el WSDL se conoce en el momento de la creación del cliente y no es necesario estar conectado en tiempo de ejecución.Si inspecciona el WSDL en tiempo de ejecución, aún necesita tener algún tipo de lógica para decidir cómo generar el proxy.¿Por qué no se puede consumir el WSDL antes del tiempo de ejecución?Se supone que los servicios web son bastante estáticos con una interfaz que no cambia una vez publicados.

Puede utilizar .NET CodeDom para generar código para ejecutar y utilizar el servicio web descrito por WSDL.El WSDL se puede analizar utilizando las clases XML .NET estándar.

De hecho, estoy considerando crear un ESB pequeño, donde un usuario pueda agregar un servicio web al que dirigirse en tiempo de ejecución.Entonces no puedo agregar WSDL estáticamente

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