从Func <t,t =“”>获取属性名称

时间:2015-11-02 11:20:12

标签: c# properties func

如何从Func<T, TResult>获取属性名称?

有很多帖子如何获取道具名称,但来自Expression而不是来自Func

_resultViewModel.SelectMeasurement(si => si.Height, vm => vm.HeightImg); // this is usage... I need to get "Height"

public void SelectMeasurement(Func<ScanInfo, double> measurement, Func<ResultViewModel, ImageSource> image)
{
    //some stuff
}

1 个答案:

答案 0 :(得分:0)

您无法从Func<T, TResult>获取“属性名称”,因为构建委托时没有任何“属性”和任何“名称”。

此外,委托可以以不同的方式获得其返回值,而不是成员访问:

Func<Foo, string> = foo => "bar";

这与表达式(Expression<Func<T, TResult>>)的情况不同,因为表达式代表一些代码,可以编译成委托,并且可以解析。