2012-07-02 19 views
1

有什么方法可以“反转”Odata服务的效果?即Odata web服务从实体对象生成RSS xml字符串。如何将Odata字符串转换为实体对象

有没有办法做到相反?即从Odata字符串中生成一个实体对象?

基本上,我正在寻找Odata serialisers和deserialiser函数,我可以在控制台应用程序中使用它,而无需创建Odata服务。

我有权访问EDMX文件,使用该文件生成给定的OData字符串。我只需要将数据反序列化的功能。

回答

0

这些函数是WCF数据服务的内部实现 - 所有相关内部类应该在System.Data.Services.Serializers命名空间内。

您可以尝试使用System.ServiceModel.Syndication的类来处理Atom/RSS提要。我认为数据服务在内部使用它们,但是您很可能会重新实现数据服务中已有的OData处理的一部分。

1

这几乎就是ODataLib的用途。它是一个实现OData格式读者和作者的图书馆。它不读取或写入实际的实体对象,而是将实体表示为自己的OM(这样您就不必为每个实体类型设置CLR类型)。但是将OM转换为实际实例非常容易。

ODataLib(Microsoft.Data.OData.dll)在NuGet上可用,或者它是WCF Data Services 5.0发行版的一部分。

下面是它如何使用的一个非常简短的示例:http://blogs.msdn.com/b/astoriateam/archive/2011/10/14/introducing-the-odata-library.aspx