2012-01-13 68 views
8

Microsoft提供了一个WCF Data Services Client Library来实现C#中的OData客户端。该库的工作原理是创建对OData服务的类型化引用。如何在C#中实现一个动态的OData客户端?

什么是在C#中实现OData客户端的好方法,而无需事先生成类型化的服务接口?换句话说,在C#中实现一个OData客户端的好方法是什么,它可以与几种不同的OData服务一起工作,给定基础URL和实体名称为字符串?

此类客户端将使用动态C#对象或字典来表示实体,而不是类型化的实体对象。

哪些现有的库或项目可以用来实现这个?

这种技术的一个应用是开发一个通用的功能测试套件帮助程序库,可以用来实现OData服务的测试。

回答

7

的指针的OData-SDK以上绝对是一个好开始。对于一个也在该网站上列出的OData Explorer几乎就是你正在寻找的东西。这是一个通用的OData服务“浏览器”。

另一种方法(可能更好)是使用Microsoft.Data.OData.dll。它是WCF数据服务(http://blogs.msdn.com/b/astoriateam/archive/2011/10/13/announcing-wcf-data-services-oct-2011-ctp-for-net-4-and-silverlight-4.aspx)的最新CTP的一部分。 这是OData的低级读写器。它不能解决URL处理问题,但读取和写入有效载荷效果很好。 这里有一个用法示例:http://blogs.msdn.com/b/astoriateam/archive/2011/10/14/introducing-the-odata-library.aspx

+0

好的指针。谢谢。 – 2012-02-08 13:13:20

1

你需要什么比一个URL /串分析器对于这一点,更多持续向下钻取方法,你也可以像在一些选项来看看这里:

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

+0

感谢您的反馈。我意识到OData可以通过HTTP工作,并且我可以编写整个分析和请求逻辑,但是我试图找出是否还有更多专门针对OData的现成,更高级别的库,同时仍然是动态的,而不是键入的。 – 2012-01-13 11:15:40

+0

我提供的链接包括varous客户端示例代码(Java,Silveright,PHP等),只需向下滚动一下:) 首先,还可以添加服务引用动态匹配;) – Rizwan 2012-01-13 11:18:55