2012-07-11 4 views
4

일반적으로이 방법으로 expresion을 만듭니다.어떻게 자식 개체의 Expression.Property를 만들 수 있습니까?

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

string Name = "property1"; 

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

그것은 내가

left = x => x.Object2.property1

이름 = "Object2.property1"만약 내가 생산할 수있는 방법을 알아야 left = x => x.property1

생산; 및 object2는 아이가 내가 확실히 당신이 원하는 것을 이해하지 못하는 사전

답변

21

감사를 오브젝트 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); 
+1

감사합니다. 실제로 이것이 필요한 것입니다. 나는 아직 투표 할 수 없다. 그러나 이것은 답변입니다 –

+0

당신의 질문에 대한 답변을 유효한 것으로 설정할 수 있습니까? – Rafal