Genel bir yöntem TResult Foo<TSource, TResult>(IEnumerable<TSource> source)
var ve TResult
dynamic
olarak bildirildi Farklı tür bildirimlerinden farklı bir kod yolu yürütmek istiyorum.Tipeof (dinamik) için nasıl test yaparım?
if (typeof(TResult) == typeof(int))
return ExpressionFactory.CreateExpandoFunction<TSource, TResult>();
Ama if (typeof(TResult) == typeof(dynamic))
derleme değil: Eğer gibi şeyler yapabilirsiniz düzenli türleri için
. dinamik kendisi ben için test edilmesi gereken bir tür değil
dyanmic x = Foo<int, dynamic>(list);
beri:
yöntem bildirimiyle çağrıldığında zamanında belirlenmesi bu tür yapmak için yine de var mı? IDynamicMetaObjectProvider
?
EDIT Bu, SQL metninin bir parçası olan System.Linq.Expression değerlendiricisinin parçasıdır. Basitçe olamaz dinamik hiçbir türü olduğundan konuşan
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
Bunun için mi ihtiyacınız var? – Gishu