title: How do I get CallerFilePath and CallerLineNumber without using the CallerInfo attributes?
body: <p>For my log4net solution, I have an API wrapper that uses the CallerInfo attributes, e.g.</p>
  
  <pre><code>    public void Write(string message,
                              [CallerMemberName] string memberName = "",
                              [CallerFilePath] string filePath = "",
                              [CallerLineNumber] int lineNumber = 0)
  </code></pre>
  
  <p>However, I am also using Unity Interception so that I can perform trace logging of the before/after responses, e.g. using ICallHandler like below in the Invoke method. </p>
  
  <pre><code>public class TraceCallHandler : ICallHandler
  {
  ...
  
     public IMethodReturn Invoke(IMethodInvocation input, 
                                 GetNextHandlerDelegate getNext)
      {
          //---- Trace method inputs
          this.LogInfoBeforeInvoke(input);
  
          //---- invoking the target method
          InvokeHandlerDelegate next = getNext();
          IMethodReturn methodReturn = next(input, getNext);
  
          //---- invoking the target method
          this.LogInfoAfterInvoke(methodReturn.ReturnValue); 
      }
  }
  </code></pre>
  
  <p>Note: The above code is in no way complete/correct... but just wanted to show you what I was doing for Unity Interception.</p>
  
  <p>My question / challenge is this:
  when I eventually call log.Write(...), I want the <em>target's</em> caller info, not my TraceCallHandler info.</p>
  
  <p>e.g. for method name, I can do this:     </p>
  
  <pre><code>   string methodName = input.MethodBase.Name;
  </code></pre>
  
  <p>How do I get the Caller's File Path and Caller's Line Number? Is it even possible to do via reflection? </p>
  
  <p>Thanks!</p>