title: C# extension method as an interface implementation
body: <p>I was wondering if a C# extension method of some class could act as an implementation of interface?
  What do I have:</p>
  
  <p>An iterface:</p>
  
  <pre><code>public interface IEventHandler
  {
      void Notify(SEvent ev, IEventEmmiter source);
  }
  </code></pre>
  
  <p>A class that implements it:</p>
  
  <pre><code>class Sim : IEventHandler
  {
  
      /*public void Notify(SEvent ev, IEventEmmiter source)
      {
          Console.WriteLine("Got notified: " + ev.Name);
      }*/
  
  }
  </code></pre>
  
  <p>And a class that contains the extension method:</p>
  
  <pre><code>public static class ReflectiveEventDispatcher
  {
      public static void Notify(this IEventHandler handler, SEvent ev)
      {
          if (handler.GetType().GetMethod("Handle" + ev.Name) != null)
          {
              // C# WTF?
              object[] prms = new object[0];
              prms[0] = ev;
              handler.GetType().GetMethod("Handle" + ev.Name).Invoke(handler, prms);
          }
          else
          {
              throw new System.NotImplementedException("This object doesn't have appropriate handler methods for event " + ev.Name);
          }
      }
  }
  </code></pre>
  
  <p>Now, I want to have various classes with IEventHandler interface and the interfaces' implementation should be fulfilled by the extension method.</p>
  
  <p>If that's not possible, is it possible to define the Notify explicitly and then just forward the call to the extension method?</p>
  
  <p>The code above is basically a multiple inheritance hack. Is it possible to emulate this behaviour by any (other) means?</p>
  
  <p>(I hope this makes sense, I'm used to Ruby and this is giving me really hard time. Oh, how do I miss you, my dear mixins...)</p>
  
  <h2>Update</h2>
  
  <p>Call forwarding solved it pretty well:</p>
  
  <pre><code>public void Notify(SEvent ev)
  {
      ReflectiveEventDispatcher.Notify(this, ev,);
  }
  </code></pre>