2012-01-13 8 views
8

Microsoft proporciona un WCF Data Services Client Library para implementar clientes OData en C#. Esta biblioteca funciona según el principio de crear una referencia tipeada al servicio OData.¿Cómo implementar un cliente dinámico de OData en C#?

¿Cuál sería un buen enfoque para implementar un cliente OData en C# sin tener que generar previamente una interfaz de servicio tipada? En otras palabras, ¿cuál sería una buena manera de implementar un cliente OData en C# que podría funcionar con varios servicios OData diferentes, dado el URL base y los nombres de las entidades como cadenas?

Tal cliente usaría objetos dinámicos C# o diccionarios para representar las entidades, en lugar de objetos de entidad tipeados.

¿Qué bibliotecas o proyectos existentes podrían aprovecharse para implementar esto?

Una aplicación de esta técnica sería desarrollar una biblioteca genérica auxiliar de conjunto de pruebas funcionales que podría utilizarse para implementar pruebas de servicios OData.

Respuesta

7

El puntero a odata-SDK anterior es definitivamente un buen comienzo. Por un lado, el OData Explorer que también aparece en ese sitio es casi exactamente lo que está buscando. Es un "navegador" de servicio general de OData.

Otro enfoque (tal vez incluso mejor) sería utilizar Microsoft.Data.OData.dll. Es parte de la última CTP de WCF Data Services (http://blogs.msdn.com/b/astoriateam/archive/2011/10/13/announcing-wcf-data-services-oct-2011-ctp-for-net-4-and-silverlight-4.aspx). Es un lector y escritor de bajo nivel para OData. No resuelve el procesamiento de URL, pero leer y escribir las cargas útiles funciona muy bien. Aquí hay un ejemplo de uso: http://blogs.msdn.com/b/astoriateam/archive/2011/10/14/introducing-the-odata-library.aspx

+0

Buenos punteros. Gracias. –

1

necesita nada más que un/analizador de cadena URL para esto, por más de profundización enfoque también es posible que mirar algunas opciones aquí:

http://www.odata.org/developers/odata-sdk

+0

Gracias por los comentarios. Me doy cuenta de que OData funciona a través de HTTP y pude escribir todo el análisis y la lógica de la solicitud, pero estoy tratando de averiguar si hay más bibliotecas ya preparadas de alto nivel dirigidas específicamente a OData sin dejar de ser dinámicas y sin tipear. –

+0

El enlace que proporcioné incluía varios códigos de muestra de clientes (Java, Silveright, PHP, etc.), simplemente desplácese un poco hacia abajo :) Para empezar, también se puede agregar una referencia de servicio Dinámicamente mate;) – Rizwan

Cuestiones relacionadas