internal override Expression VisitMemberAccess(MemberExpression m) { Debug.Assert(m != null, "m != null"); if (ClientConvert.IsKnownNullableType(m.Expression.Type)) { return(base.VisitMemberAccess(m)); } if (!ClientType.CheckElementTypeIsEntity(m.Expression.Type) || IsCollectionProducingExpression(m.Expression)) { throw new NotSupportedException(Strings.ALinq_ExpressionNotSupportedInProjection(this.type, m.ToString())); } PropertyInfo pi = null; if (ResourceBinder.PatternRules.MatchNonPrivateReadableProperty(m, out pi)) { Expression e = base.VisitMemberAccess(m); box.AppendToPath(pi); return(e); } throw new NotSupportedException(Strings.ALinq_ExpressionNotSupportedInProjection(this.type, m.ToString())); }