title: Activator.CreateInstance(Type) as Interface returns null
body: <p>I have this as the main class of my dll:</p>
  
  <pre><code>namespace PTEmu
  {
  
      public class DatabaseProtocol : IDatabaseProtocol
      {
        (constructors and methods)
      }
   }
  </code></pre>
  
  <p>This code I use to Load the DLL and create an instance of the class</p>
  
  <pre><code>var assembly = Assembly.LoadFrom("database\\" + file);
  var t = assembly.GetType("PTEmu.DatabaseProtocol");
  var protocol = Activator.CreateInstance(t) as IDatabaseProtocol;
  </code></pre>
  
  <p><code>Assembly.LoadFrom, assembly.GetType</code> and <code>Activator.CreateInstance</code> itself, doesn't throw any errors.</p>
  
  <p>I can't see what is wrong, sice I took this piece of code from another project that worked fine with it.</p>
  
  <p>If I remove <code>as IDatabaseProtocol</code>, it returns an object, but not an object like the interface I want, so I can call the methods easily...</p>