有什么办法可以“逆转” Odata 服务的效果?即 Odata Web 服务从实体对象生成一个 RSS xml 字符串。
有什么办法可以反过来吗?即从 Odata 字符串生成实体对象?
基本上,我正在寻找可以在控制台应用程序中使用的 Odata 序列化器和反序列化器功能,而无需创建 Odata 服务。
我可以访问生成给定 OData 字符串的 EDMX 文件。我只需要反序列化数据的功能。
有什么办法可以“逆转” Odata 服务的效果?即 Odata Web 服务从实体对象生成一个 RSS xml 字符串。
有什么办法可以反过来吗?即从 Odata 字符串生成实体对象?
基本上,我正在寻找可以在控制台应用程序中使用的 Odata 序列化器和反序列化器功能,而无需创建 Odata 服务。
我可以访问生成给定 OData 字符串的 EDMX 文件。我只需要反序列化数据的功能。
这几乎正是 ODataLib 的用途。它是一个实现 OData 格式的读取器和写入器的库。它不读取或写入实际的实体对象,而是将实体表示为自己的 OM(这样您就不必为每个实体类型指定 CLR 类型)。但是将 OM 转化为实际实例非常容易。
ODataLib (Microsoft.Data.OData.dll) 在 NuGet 上可用,或者它是 WCF 数据服务 5.0 版本的一部分。
这是如何使用它的一个非常简短的示例:http: //blogs.msdn.com/b/astoriateam/archive/2011/10/14/introducing-the-odata-library.aspx
这些函数是 WCF 数据服务的内部实现 - 所有相关的内部类都应该在System.Data.Services.Serializers
命名空间内。
您可以尝试使用类 fromSystem.ServiceModel.Syndication
来处理 Atom / RSS 提要。我认为数据服务在内部使用它们,但您很可能会重新实现数据服务中已经可用的部分 OData 处理。