title: How to share a interface over multiple assemblies
body: <p>Hello <br>I have a main app that is going to have some plugins in the ./plugin directory.<br>
  Every plugin is a .NET dll and should have the namespace "Plugin" and a class "MainClass" implementing the IPlugin interface defined in the main app.<br>
  The problem I have is that I don't know how I could share the same interface across the main app and every plugin <em>without</em> a <code>using</code> reference?</p>
  
  <p>A part of the main app class:</p>
  
  <pre><code>        object oo = Assembly.LoadFile(path).CreateInstance("Plugin.MainClass");
          IPlugin pp = (IPlugin)oo; //Fails if I define the interface in the main app and the plugins
  </code></pre>
  
  <p>and a part of the first plugin:</p>
  
  <pre><code>namespace Plugin
  {
      public class MainClass : IPlugin //I cannot reference the interface in the main app?
      {
         public string getName()
         {
            return "Plugin 1";
         }
      }
  }
  </code></pre>