title: MEF GetExportedValue with metadata
body: <p>I want to use MEF as a DI for my project. I have 1 project and every classes that should be composed resides there (they share one interface). Now I want to create one of them by specifiyng a metadata value. Here's the definitions:</p>
  
  <pre><code>public interface IGatewayResponseReader
  {
      object Read(string msg);
  }
  
  [Export(typeof(IGatewayResponseReader))]
  [ExportMetadata(G3Reader.META_KEY, "value1")]
  public class TestReader1 : IGatewayResponseReader
  {
      ...
  }
  
  [Export(typeof(IGatewayResponseReader))]
  [ExportMetadata(G3Reader.META_KEY, "value2")]
  public class TestReader2 : IGatewayResponseReader
  {
      ...
  }
  </code></pre>
  
  <p>Now I want to create an instance of TestReader1 through MEF, but I don't know how to filter by metadata through CompositionContainer. I want something like </p>
  
  <pre><code>Container.GetExportedValue&lt;IGatewayResponseReader&gt;();
  </code></pre>
  
  <p>But to specify the metadata to choose which class instance to create.</p>
  
  <p>Your help is much appreciated.</p>
  
  <p>Thanks.</p>