C# 来自委托的属性信息

C# 来自委托的属性信息,c#,reflection,delegates,C#,Reflection,Delegates,假设委托中的属性是一个简单的属性选择器,是否有一种简单的方法来获取该属性的PropertyInfo 例如: var propertyInfo = Method<MyClass,int>(s => s.Property); ... PropertyInfo Method(Func<T1,T2> selector) { // What goes here? } var-propertyInfo=Method(s=>s.Property); ... Prope

假设委托中的属性是一个简单的属性选择器,是否有一种简单的方法来获取该属性的PropertyInfo

例如:

var propertyInfo = Method<MyClass,int>(s => s.Property);

...

PropertyInfo Method(Func<T1,T2> selector)
{
   // What goes here?
}
var-propertyInfo=Method(s=>s.Property);
...
PropertyInfo方法(函数选择器)
{
//这里有什么?
}

使用表达式,您可以:

    static PropertyInfo ExtractProperty<T>(Expression<Func<T>> selector)
    {
        return (selector.Body as MemberExpression).Member as PropertyInfo;
    }
静态属性信息提取属性(表达式选择器)
{
返回(selector.Body作为MemberExpression).Member作为PropertyInfo;
}

是的,必须是表达式树而不是委托