2010-11-25 6 views
2

私はプロパティには、動的な型として宣言したダイナミックキーワードC#4.0

後のデータの型が使用Data.AsQueryableは()私が得るので、場合System.Collections.Generic.List になり、いくつかの方法で
public dynamic Data {get;set;} 

"System.Collections.Generic.List <Entity1には、 'AsQueryable'エラーの定義が含まれていません。

結果はIquerybleに変換する必要があり、Dynamic.Linqで定義されているメソッドを使用しています。

どうすればいいですか?

+2

どうしたのですか? – mpen

+0

質問は何ですか? –

+0

それがあなたのために働いていると聞いてよかったです。 –

答えて

6

現在、dynamicは拡張メソッドではうまく機能しません。

7.6.5.2エクステンションメソッド呼び出し

呼び出しの通常の処理が該当 方法を見つけない場合...、試みが 呼び出し拡張メソッドとして 構築物を処理するために構成されています。 を動的コンパイル時の型を持つのexprまたは引数の任意場合this questionに記載されているように、 拡張メソッドは、静的なコンテキストを

を適用しないであろう(該当usingディレクティブ)で利用可能にしなければなりませんランタイムすべての動的呼び出しに対して、どの拡張メソッドが適用されるかを把握します。これは現在実装されていません。

代わりに '通常の'静的メソッドとして拡張メソッドを呼び出してみましたか?例えば。 (別の方法を呼びたい場合は変更してください):System.Linq.Queryable.AsQueryable(Data)

+0

素晴らしい、ありがとう、このサイトは本当に初心者のための素晴らしいリソースです – Novice

+0

@ダニエル・ジョセフ:乾杯。将来のバージョンの言語では、あなたの現在のコードが "うまくいく"でしょう。 – Ani

関連する問題