2010-09-01 61 views
8

有谁知道是否有一个开源的.NET包装,可以可靠地解析OData protocol Uri是否有一个OData协议的.NET类包装Uri

我不在寻找指向WCF数据服务的指针......我正在创建一个基于WCF的数据查询服务(出于复杂的原因)不能成为真正的Atom/OData服务,但我真的很喜欢表达性OData Uri用于标识数据源和查询参数。此外,我们可能会在未来某个时间公开OData端点。

我已经通过WCF数据服务API查看(cursorally),似乎没有公开的包装ODataUri类公开服务主机,资源路径和查询参数。我可以写一篇,但在我做之前,我宁愿看看是否有人已经做到了。

+1

我也会对此感兴趣,您是否设法找到/创建包装?你能分享你的发现吗? – Alex 2011-02-17 19:32:25

+0

当然,阅读这篇博客文章作为首发:http://tirania.org/blog/archive/2010/Mar-22.html – 2010-09-01 20:36:45

+0

因此,除非我错过了一些东西,本文讨论MS需要开放性,源数据服务服务器代码(我需要的东西!)。我同意这种观点,但它并不能帮助我,因为MS没有操作服务器代码,所以我无法得到他们的URI解析器(我想我可以尝试反射器,但这可能会很多麻烦)。 – 2010-09-01 22:10:00

回答

6

我知道你说过你看过API,但是你看过实际的代码。 .Net客户端库已经开源,http://odata.codeplex.com/,所以如果你在那里找不到一个,你可以使用他们的代码作为起点(并希望将其贡献回社区)。

本质上,你需要的是一个LINQ到OData Uri提供者。如果我没有记错的话,Astoria的一个nick-name是LINQ to REST。您需要做的是在客户端,将LINQ表达式树转换为OData URI格式,然后在服务器上将URI转换回LINQ表达式树。创建自定义LINQ提供程序并不是最简单的事情,但马特华伦有一个伟大(长)系列构建IQueryable提供商http://blogs.msdn.com/b/mattwar/archive/2008/11/18/linq-links.aspx

+0

这就是很多*完全*我想要做的事情。我会看看这个。 – 2010-09-02 16:12:39