blob: 6dbf2ecbc36824a4e566ca6b4d2e905b8036804b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
using System;
using System.Linq.Expressions;
using System.Reflection;
namespace jive
{
static public class ExpressionExtensions
{
static public PropertyInfo pick_property<T>(this Expression<Func<T, object>> expression)
{
return (PropertyInfo) member_expression(expression).Member;
}
static MemberExpression member_expression<T>(Expression<Func<T, object>> expression)
{
if (expression.Body.NodeType == ExpressionType.Convert)
return ((UnaryExpression) expression.Body).Operand as MemberExpression;
if (expression.Body.NodeType == ExpressionType.MemberAccess)
return expression.Body as MemberExpression;
throw new NotImplementedException();
}
}
}
|