Пример #1
0
        private static IList <MemberInfo> HandleMemberExpressionAndReturnMemberName(MemberExpression memberPropertySelector, PropertySelectionType propertySelectionType, IList <MemberInfo> result = null)
        {
            if (result == null)
            {
                result = new List <MemberInfo>();
            }
            if (memberPropertySelector.Expression is MemberExpression)
            {
                switch (propertySelectionType)
                {
                case PropertySelectionType.FirstProperty:
                    return(HandleMemberExpressionAndReturnMemberName(memberPropertySelector.Expression as MemberExpression, propertySelectionType, result));

                case PropertySelectionType.LastProperty:
                    result.Add(memberPropertySelector.Member);
                    return(result);

                case PropertySelectionType.AllProperties:
                    HandleMemberExpressionAndReturnMemberName(memberPropertySelector.Expression as MemberExpression, propertySelectionType, result);
                    result.Add(memberPropertySelector.Member);
                    return(result);

                default:
                    throw new NotImplementedException(propertySelectionType.ToString());
                }
            }
            else
            {
                result.Add(memberPropertySelector.Member);
                return(result);
            }
        }
Пример #2
0
 public static IList <MemberInfo> PropertyFunctionToPropertyInfo <TSource, TProperty>(Expression <Func <TSource, TProperty> > propertySelector, PropertySelectionType propertySelectionType = PropertySelectionType.FirstProperty)
 {
     if (propertySelector.Body is MemberExpression)
     {
         return(HandleMemberExpressionAndReturnMemberName(propertySelector.Body as MemberExpression, propertySelectionType));
     }
     else if (propertySelector.Body is UnaryExpression && (propertySelector.Body as UnaryExpression).Operand is MemberExpression)
     {
         return(HandleMemberExpressionAndReturnMemberName((propertySelector.Body as UnaryExpression).Operand as MemberExpression, propertySelectionType));
     }
     else
     {
         throw new NotImplementedException();
     }
 }
Пример #3
0
 public static IList <MemberInfo> PropertyFunctionToPropertyInfo <T>(Expression <Func <T, object> > propertySelector, PropertySelectionType propertySelectionType = PropertySelectionType.FirstProperty)
 {
     return(PropertyFunctionToPropertyInfo <T, object>(propertySelector, propertySelectionType));
 }
Пример #4
0
 public static string PropertyFunctionToPropertyName <TSource, TProperty>(Expression <Func <TSource, TProperty> > propertySelector, PropertySelectionType propertySelectionType = PropertySelectionType.FirstProperty)
 {
     return(PropertyFunctionToPropertyInfo <TSource, TProperty>(propertySelector, propertySelectionType).ToSeparatedString(p => p.Name, separator: " "));
 }
Пример #5
0
 public static string PropertyFunctionToPropertyName <T>(Expression <Func <T, object> > propertySelector, PropertySelectionType propertySelectionType = PropertySelectionType.FirstProperty)
 {
     return(PropertyFunctionToPropertyName <T, object>(propertySelector, propertySelectionType));
 }