title: Type.GetInterface returning null
body: <p>My issue is that I am getting different results to our older DLLs from history, when very little has changed and I don't under how the changes are relevant to the error shown.</p>
  
  <p>This is part of a method, in our SecurityPluginServices.dll module, which essentially added plugins to a list so they can be utilised by the main program.</p>
  
  <p>It gets all the DLLs in a set folder, then for each it runs through the code below.</p>
  
  <pre><code>private void AddPlugin(string FileName, LoggingUtilities.Source source)
  {
      //Create a new assembly from the plugin file we're adding..
      Assembly pluginAssembly = Assembly.LoadFrom(FileName);
  
      try
      {
          //Next we'll loop through all the Types found in the assembly
          foreach (Type pluginType in pluginAssembly.GetTypes())
          {
              if (pluginType.IsPublic) //Only look at public types
              {
                  if (!pluginType.IsAbstract)  //Only look at non-abstract types
                  {
                      //Gets a type object of the interface we need the plugins to match
                      Type typeInterface = pluginType.GetInterface("SecurityInterface.ISecurityPlugin", true);
  
                      //Make sure the interface we want to use actually exists
                      if (typeInterface != null)
                      {
                       // Do work here
                      }
  
                      typeInterface = null; //Mr. Clean           
                  }
              }
          }
  
          pluginAssembly = null; //more cleanup
      }
      catch (ReflectionTypeLoadException ex1)
      {
          Console.WriteLine(ex1.Message);
      }
      catch (Exception ex2)
      {
          Console.WriteLine(ex2.Message);
      }
  }
  </code></pre>
  
  <p>The issue I am having is that everytime it gets to <code>Type typeInterface = pluginType.GetInterface("SecurityInterface.ISecurityPlugin", true);</code> it always returns null.
  The plugins I need to load are for NTLM and LDAP and they have changed very little in many versions and only a couple of extra properties and methods have been added, nothing to do with interfaces that the implement.
  I've opened up a copy of the newer plugin DLL and one of the older ones in ILDASM and they both seem to contain the same information regarding the <code>SecurityInterface.ISecurityPlugin</code> that the <code>.GetInterface</code> method is seeking.</p>
  
  <p><a href="http://pastebin.com/t8asttHW" rel="nofollow">Newer LdapSecurity</a></p>
  
  <p><a href="http://pastebin.com/smk5hFVt" rel="nofollow">Older LdapSecurity</a></p>