title: Can't find ExpressionVisitor.VisistMemberAcess
body: <p>I am following <a href="http://blogs.msdn.com/b/mattwar/archive/2007/08/02/linq-building-an-iqueryable-provider-part-iv.aspx" rel="nofollow">this blog</a> to try to create an IQueryable provider for MSAccess for a project I am working on at the moment.</p>
  
  <p>I got as far as the page I linked to above, but a couple of pieces of code create classes which inherit from <code>ExpressionVisitor</code> and override its <code>VisitMemberAccess</code> method, in this method for example:</p>
  
  <pre><code>protected override Expression VisitMemberAccess(MemberExpression m)
      {
          if (m.Expression != null &amp;&amp; m.Expression.NodeType == ExpressionType.Parameter)
          {
              if (this.sb.Length &gt; 0)
              {
                  this.sb.Append(", ");
              }
              this.sb.Append(m.Member.Name);
              return Expression.Convert(Expression.Call(this.row, miGetValue, Expression.Constant(iColumn++)), m.Type);
          }
          else
          {
              return base.VisitMemberAccess(m);
          }
      }
  </code></pre>
  
  <p>The problem is that this does not compile because the <code>VisitMemberAccess</code> method is not available anymore. I have googled this for a while and found a few references to this method, but they all seem to date back to .NET 3.5 (see <a href="http://msdn.microsoft.com/en-us/library/bb882521%28v=vs.90%29.aspx" rel="nofollow">here</a> for e.g.).</p>
  
  <p>I would like to know what happened to that method? And more importantly what to do instead of overriding <code>VisitMemberAccess</code>.</p>