9

通常、この方法で式を作成します。

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 の子です

前もって感謝します

4

1 に答える 1

38

あなたが何を望んでいるのかよくわかりません。それはプロパティ チェーンですか (例: 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);
于 2012-07-11T19:13:53.167 に答える