私は汎用メソッドTResult Foo<TSource, TResult>(IEnumerable<TSource> source)
を持っています。TResult
がdynamic
と宣言されている場合は、他の型宣言とは異なるコードパスを実行します。typeof(dynamic)のテスト方法を教えてください。
if (typeof(TResult) == typeof(int))
return ExpressionFactory.CreateExpandoFunction<TSource, TResult>();
しかしif (typeof(TResult) == typeof(dynamic))
コンパイルされません:あなたはのようなものを行うことができ、通常のタイプについて
。ダイナミック自体は私がテストする必要がありますどのようなタイプではありません
dyanmic x = Foo<int, dynamic>(list);
ので:
は、メソッドが宣言して呼び出されたときに、実行時に決意のこの種を作るためにとにかくありますか? IDynamicMetaObjectProvider
?
EDIT これは、System.Linq.ExpressionエバリュエーターへのSQLテキストの一部です。単にあなたができないダイナミック何のタイプが存在しないので、話す
if (type is struct)
create selector that initializes each element to result values
else if (type is class)
create selector that initialize each element to new instance and set member properties
else if (type is dynamic)
create selector that initializes each element to new `ExpandoObject` and populates/sets member properties
が必要ですか? – Gishu