Comment créer une expression.Propriété d'un objet enfant

c# expression expression-trees func linq

Question

normalement, je crée une expression de cette façon.

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

string Name = "property1";

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

il produit left = x => x.property1

J'ai besoin de savoir comment puis-je produire

left = x => x.Object2.property1

if Name = "Object2.property1"; et object2 est un enfant à object1

Merci d'avance

Réponse populaire

Je ne comprends pas bien ce que tu veux. Est-ce une chaîne de propriétés (disons: 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);


Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow