title: How do you use CallerMemberName in LINQPad?
body: <p>So LINQPad says it supports everything in C# 5.0 but I can't get CallerMemberName to work.</p>
  
  <pre><code>void Main()
  {
      GetMethodName().Dump();
  }
  
  public string GetMethodName([CallerMemberName] string memberName = "")
  {
      return memberName;
  }
  </code></pre>
  
  <p>Error: The type or namespace name 'CallerMemberName' could not be found (press F4 to add a using directive or assembly reference)</p>
  
  <p>The type or namespace name 'CallerMemberNameAttribute' could not be found (are you missing a using directive or an assembly reference?)</p>
  
  <p>I tried adding a <code>using</code> line for the namespace that CallerMemberName is in, but of course that doesn't work because LINQPad assumes the code you enter is inside of some secret hidden class and you can't put <code>using</code> inside of a class. So then I tried typing out the full namespace for CallerMemberName: <code>public string GetMethodName([System.Runtime.CompilerServices.CallerMemberName] string memberName = "")</code> but this still doesn't work.</p>
  
  <p>Error: The type or namespace name 'CallerMemberName' does not exist in the namespace 'System.Runtime.CompilerServices'</p>
  
  <p>The type or namespace name 'CallerMemberNameAttribute' does not exist in the namespace 'System.Runtime.CompilerServices'</p>