What is the best way to load/choose "controller" classes
<p>I'm not sure if i'm using the correct terminology but I have several Controller classes that return objects using different data sources in my ASP.NET web app. ie </p>

<pre><code>Product p = ProductController.GetByID(string id);
</code></pre>

<p>What I want to be able to do is use a controller factory that can select from different ProductControllers.  I understand the basic factory pattern but wondered if there was a way to load the selected cotroller class using just a string.  </p>

<p>What I want to achieve is a way of returning new/different controllers without having to update a factory class.  Someone suggested i look at dependency injection and MEF.  I had a look at MEF but I've been having trouble figuring out how to implment this in a web app.  </p>

<p>I'd love to get some pointers in the right direction.</p>
