0

也许我的问题没有意义,但我会尝试公开我的问题:我想通过 WCF 数据服务公开自定义数据(基于反射提供程序)。

该数据是复杂请求的结果,其结构可能非常多变。我无法通过数据服务公开的 4 或 5 个自定义类对其进行建模。

例如,我可以得到类似 [date,name,age,function] 或 [date,time,page,type], [Country,hits,roi] ...等的结果。我不可能在自定义类中生成所有结果组合并通过 WCF 数据服务公开它们。

那么,是否可以公开具有非常可变结构的数据?当我看到 Azure Table 可以做什么时,我认为这是可能的,但我无法弄清楚它是如何工作的。

4

2 回答 2

0

通常,在 OData 中,您可以使用开放类型执行此操作。通过将属性设置为如下所示,实体类型$metadata在服务文档中被声明为打开:OpenTypetrue

<EntityType Name="Customer" OpenType="true">
...
</EntityType>

这意味着该实体类型的实例可以动态添加任意数量的未声明属性(除了该类型上的任何已声明属性)。

但是,WCF 数据服务反射提供程序不提供对开箱即用的开放类型的支持。为了将开放类型与 WCF 数据服务一起使用,您需要实现一个自定义提供程序(即,提供IDataServiceQueryProviderand的实现IDataServiceMetadataProvider)。为了帮助编写自定义提供程序,我在这里推荐 Alex 的博客系列。

于 2013-04-24T18:21:00.160 回答
0

我读过 Alex 的博客系列,但他没有使用开放类型属性。相反,他公开了一种无类型/RO & RW 技术,但我认为它不适合我的问题......

于 2013-04-25T13:32:23.793 回答