2010-11-25 46 views
2

我已经声明为dynamic类型的属性动态关键词C#4.0

public dynamic Data {get;set;} 

在一些方法中的数据类型变得System.Collections.Generic.List 因此,如果使用Data.AsQueryable()我得到后“System.Collections.Generic.List <Entity1不包含'AsQueryable'”错误的定义。

结果必须转换为Iqueryble,我使用Dynamic.Linq中定义的方法。

我应该如何继续?

+2

有什么问题吗? – mpen 2010-11-25 11:12:48

+0

是什么问题? – 2010-11-25 11:13:25

回答

6

目前,dynamic不适用于扩展方法。

7.6.5.2扩展方法调用

...如果 调用的正常处理没有发现适用 方法,试图处理 构建体作为扩展方法 调用。如果expr或任何参数的个数 具有编译时类型动态,如this question提到 扩展方法不适

,静态上下文(适用using指令)将必须被提供在运行时间为每个动态调用找出哪些扩展方法可能适用,目前尚未实现。

您是否曾尝试将扩展方法调用为“普通”静态方法?例如。 (请修改,如果你打算调用不同的方法):System.Linq.Queryable.AsQueryable(Data)