title: Are there disadvantages in MEF exporting with and without a contract name?
body: <p>I am looking at trying to fiter a set of exported test handlers such that some can be used automatically without human interaction and some can be manually used. When they are manual capable they will display a different user control.</p>
  
  <p>I know that you can export/import with a contract name but I wondered what the disadvantage would be using this like so:</p>
  
  <pre><code>[Export(typeof(TestStepHandler))]
  [Export("ManualTest", typeof(TestStepHandler))]
  </code></pre>
  
  <p>That way I could import against the contract name in one ViewModel associated with manual tests and elsewhere import everything in another ViewModel. I guess I would still need a property on a manual test in order for the 'DataTemplate` to work differently when displayed in user mode but this is easy enough to iterate over the imported list.</p>
  
  <p>I did consider that I could use metadata and <code>Lazy</code> importing and filtering but what advantages would that offer over exporting with and without a contract name?</p>