Unwinding a Property Lambda Expression

,

Resolving a property’s name and creating delegates for its get and set property accessors involves unwinding of the Lambda expression and retrieving the PropertyInfo instance. In the sample code, this is done using the custom PropertyUtility.GetPropertyInfo method, which retrieves the PropertyInfo instance from the expression’s Member property, as shown:

public static PropertyInfo GetPropertyInfo<T>(Expression<Func<T>> expression)
{
    var memberExpression = expression.Body as MemberExpression;
    if (memberExpression == null)
    {
        throw new ArgumentException(
            "MemberExpression expected.", "expression");
    }

    if (memberExpression.Member == null)
    {
        throw new ArgumentException("Member should not be null.");
    }

    if (memberExpression.Member.MemberType != MemberTypes.Property)
    {
        throw new ArgumentException("Property expected.", "expression");
    }

    PropertyInfo propertyInfo = (PropertyInfo)memberExpression.Member;
    return propertyInfo;
}

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.18.253