public static Expression MakeMemberAccess(Expression instance, string memberName) { foreach (var token in MemberAccessTokenizer.GetTokens(memberName)) { instance = token.CreateMemberAccessExpression(instance); } return(instance); }
public override Expression CreateMemberAccessExpression() { //if no property specified then return the item itself if (string.IsNullOrEmpty(MemberName)) { return(this.ParameterExpression); } Expression instance = ParameterExpression; foreach (var token in MemberAccessTokenizer.GetTokens(MemberName)) { if (token is PropertyToken) { var propertyName = ((PropertyToken)token).PropertyName; instance = CreatePropertyAccessExpression(instance, propertyName); } else if (token is IndexerToken) { instance = CreateIndexerAccessExpression(instance, (IndexerToken)token); } } return(instance); }