Есть ли оболочка .NET-класса для протокола OData Uri

Кто-нибудь знает, существует ли оболочка .NET с открытым исходным кодом, которая может надежно анализировать OData протокол Ури?

Я не ищу указатели на службы данных WCF ... Я создаю службу запросов данных на основе WCF, которая (по сложным причинам) не может быть настоящей службой Atom / OData, но мне очень нравится выразительность OData Uri для определения источника данных и параметров запроса. Кроме того, мы можем открыть конечную точку OData когда-нибудь в будущем.

Я просмотрел (курсором) API службы данных WCF, и, похоже, там нет аккуратно обернутого класса ODataUri, который предоставляет хост службы, путь к ресурсам и параметры запроса. Я могу написать один, но прежде я лучше посмотрю, сделал ли это кто-нибудь уже.


person Simon Gillbee    schedule 01.09.2010    source источник
comment
Конечно, прочтите это сообщение в блоге для начала: tirania.org/blog/archive/ 2010 / март-22.html   -  person    schedule 02.09.2010
comment
Итак, если я чего-то не упускаю, в этой статье обсуждается необходимость для MS открывать исходный код серверного кода служб данных (то, что мне нужно!). Я согласен с этим мнением, но это не помогает мне, потому что MS не использует в ОС код сервера, и поэтому я не могу получить доступ к их парсеру uri (думаю, я мог бы попробовать рефлектор, но это, вероятно, будет много неприятностей).   -  person Simon Gillbee    schedule 02.09.2010
comment
Это: odata.codeplex.com.   -  person    schedule 02.09.2010
comment
Спасибо. Посмотрю клиентский код. У меня сложилось впечатление, что uri parser будет серверным компонентом, а не клиентским, но я мог ошибаться.   -  person Simon Gillbee    schedule 02.09.2010
comment
Меня тоже это заинтересует, удалось найти / создать обертку? Можете ли вы поделиться своими выводами?   -  person Alex    schedule 17.02.2011


Ответы (1)


Я знаю, вы сказали, что смотрели API, но смотрели ли вы на самом деле код. Клиентская библиотека .Net была открыта с исходным кодом, http://odata.codeplex.com/, поэтому, если вы не можете найти там, вы можете использовать их код в качестве отправной точки (и, надеюсь, внести свой вклад в сообщество).

По сути, вам нужен поставщик LINQ to OData Uri. Если я правильно помню, одним из псевдонимов для Astoria был LINQ to REST. Что вам нужно сделать, так это на стороне клиента преобразовать дерево выражений LINQ в формат URI OData, а на сервере преобразовать URI обратно в дерево выражений LINQ. Создание настраиваемых поставщиков LINQ - не самое простое занятие, но у Мэтта Уоррена есть отличная (длинная) серия статей по созданию поставщиков IQueryable http://blogs.msdn.com/b/mattwar/archive/2008/18ноября/linq-links.aspx

person Don Demsak    schedule 02.09.2010
comment
Это во многом именно то, чем я хочу заниматься. Я посмотрю на это. - person Simon Gillbee; 02.09.2010