2010-11-25 70 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)