Как мога да създам Expression.Property на дъщерен обект

обикновено създавам израз по този начин.

ParameterExpression pe = Expression.Parameter(typeof(object1), "x");

string Name = "property1";

MemberExpression left = Expression.Property(pe, (object1).GetProperty(Name));

произвежда left = x => x.property1

Трябва да знам как мога да произвеждам

left = x => x.Object2.property1

if Name = "Object2.property1"; и object2 е дете на object1

Благодаря предварително


person Diana G    schedule 11.07.2012    source източник


Отговори (1)


Не разбирам много какво искаш. Дали това е верига от свойства (да кажем: x.Prop1.Prop2)?

var pe = Expression.Parameter(typeof(object1));
var property1 = typeof(object1).GetProperty(Name1);
var property2 = property1.PropertyType.GetProperty(Name2);
var inner = Expression.Property(pe, property1);
var outer = Expression.Property(inner, property2);
person Rafal    schedule 11.07.2012
comment
Благодаря всъщност това ми трябваше. Още не мога да гласувам. но това е отговорът - person Diana G; 12.07.2012
comment
Можете ли да зададете отговор на собствения си въпрос като валиден? - person Rafal; 12.07.2012