获取Func的名称<tsource,tkey =“”>通用类型参数</tsource,>

时间:2012-06-13 10:43:59

标签: c# generics

我正在使用Func作为在Linq语句中的GroupBy操作中使用的方法的参数。 TSource是IFoo,TKey是IFoo的属性,如IFoo.Number,使得我的Func参数看起来像:

foo => foo.Number

到目前为止一切顺利。但是,现在我正在尝试获取TKey的字符串表示,或者更确切地说,我正在尝试使用Func&lt;&gt;中的字符串“Number”。参数。

可以这样做,如果是,怎么做?提前感谢你们..

1 个答案:

答案 0 :(得分:3)

你不能使用Func,你需要一个Expression<Func<TSource, TKey>>

类型的参数

并处理Expression's Body。

当你需要func时,只需编译表达式。

从表达式获取名称: Retrieving Property name from lambda expression