/// <summary> /// Serializes an MemberExpression to a string /// </summary> /// <param name="m">Expression to serialize</param> /// <returns>MemberExpression</returns> internal override Expression VisitMemberAccess(MemberExpression m) { if (m.Member is FieldInfo) { throw new NotSupportedException(Strings.ALinq_CantReferToPublicField(m.Member.Name)); } Expression e = this.Visit(m.Expression); // if this is a Nullable<T> instance, don't write out /Value since not supported by server if (m.Member.Name == "Value" && m.Member.DeclaringType.IsGenericType && m.Member.DeclaringType.GetGenericTypeDefinition() == typeof(Nullable <>)) { return(m); } if (!IsInputReference(e)) { this.builder.Append(UriHelper.FORWARDSLASH); } this.builder.Append(m.Member.Name); return(m); }