从 Func<t, T> 获取 属性 名称

Get property name from Func<t, T>

如何从 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
}

你不能从Func<T, TResult>得到“属性 name”,因为在构造delegate时没有任何“属性”和任何“name”。

此外,委托可以通过一些不同的方式获取其 return 值,而不是成员访问:

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

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