title: How to invoke (non virtually) the original implementation of a virtual method?
body: <p>I have the following situation:</p>
  
  <p>In a 3rd party library (can not be modified):</p>
  
  <pre><code>class A { public virtual void M() {} }
  
  class B : A { public override void M() {} }
  </code></pre>
  
  <p>In my own code:</p>
  
  <pre><code>class C : B { public override void M() {} }
  </code></pre>
  
  <p>From <code>C</code>'s implementation of method <code>M</code> I want to call <code>A</code>'s (but not <code>B</code>'s!!). Can I?</p>
  
  <p>Any tricks accepted, reflection included. I tried reflection already, but using the <code>MethodInfo</code> that I get from <code>typeof(A)</code> still generates a virtual call (calling <code>C</code>'s implementation with subsequent stack overflow).</p>
  
  <p>Deriving <code>C</code> from <code>A</code> is out of the question due to the complexity of reimplementing <code>B</code>.</p>