title: Called method name inside FakeItEasy.Invokes()
body: <p><code>FakeItEasy</code> is amazing. A big "thank you" to all the contributors.</p>
  
  <p>Having said that, I ran across a use case where I would like to know from inside the lambda configured with <code>Invokes</code> what method of the faked object was actually invoked, without having to explicitly configure <code>Invokes</code> for every method.</p>
  
  <p>Here is a simple example of what I mean:</p>
  
  <pre><code>public interface ILogger {
      void Info(string msg);
      void Error(string msg);
  }
  
  var logger = A.Fake&lt;ILogger&gt;();
  
  A.CallTo(logger).Invokes(
      () =&gt; {
          Debug.WriteLine(CurrentMethodName); 
          // CurrentMethodName should return "Error", or "Info", as appropriate
      });
  
  logger.Error("Error");
  </code></pre>
  
  <p>Inside the lambda for <code>Invokes</code>, I would like to be able to tell what method on the interface was called. In other words, how do I implement <code>CurrentMethodName</code>?</p>
  
  <p>This is what I tried: </p>
  
  <pre><code>public string CurrentMethodName
  {
      get
      {
          StackTrace st = new StackTrace();
          StackFrame sf = st.GetFrame(1);
          return sf.GetMethod().Name;
      }
  }   
  </code></pre>
  
  <p>The reason it doesn't work is that <code>logger.Error</code> is not in the call stack at all at this point. What is in the call stack is something like <code>blah_blah_blah.AnonymousMethod__7_0()</code> which is the anon. method supplied to the <code>Invoke</code>.</p>
  
  <p>However, at the time <code>CurrentMethodName</code> is called <code>FakeItEasy</code> must be able to know what is being faked...</p>
  
  <p>Is there a parameter, or global variable, or something I can access to see that indeed <code>logger.Error</code> was called?</p>
  
  <p>Furthermore, can I list the values of arguments it was called with?</p>