title: How can I create an instance of an object defined in my App.Config without having a reference to the assembly in my project?
body: <p>I am continuing on from a <a href="https://stackoverflow.com/questions/1688420/why-cant-i-get-type-gettype-work-on-an-object-i-want-to-plugin-from-the-app-co">previous question</a> relating to loading instances of plugins specified in the app.config.</p>
  
  <p>I'm curious if it's possible to add a plugin without requiring a reference added to my project and if so, how do I go about that?</p>
  
  <pre><code>&lt;configuration&gt;
    &lt;appSettings&gt;
      &lt;add key="Plugin" value="Prototypes.BensPlugin, PrototypePlugins" /&gt;
    &lt;/appSettings&gt;
  &lt;/configuration&gt;
  </code></pre>
  
  <p>So now I want to load my plugin using:</p>
  
  <pre><code>string tn = /* Retrieve from config */
  Type t = Type.GetType(tn);
  IPlugin plugin = (IPlugin)Activator.CreateInstance(t);
  </code></pre>
  
  <p>Given the nature of a plugin, I'm thinking that my assembly shouldn't require a reference to it.  It seems like Type.GetType() requires that the plugin assembly is in the reference list (or the GAC?) which leads me to believe that this is not the right approach to plugging in features.</p>
  
  <p>Is this possible or am I looking in the wrong direction?</p>