title: MEF RegistrationBuilder export specific Interface implementation
body: <p>I have multiple implementations of an interface and I want to programatically export only one. I have looked at <code>RegistrationBuilder</code> and it's <code>AddMetaData()</code> function but this is defining MetaData for the export, rather than filtering for a specific value. For example, I want to do something like this:</p>
  
  <pre><code>public enum MyClassType { TypeA, TypeB }
  public interface IClass {}
  public interface ClassMetaData { MyClassType Type { get; } }
  
  [ExportMetadata("Type", MyClassType.TypeA)]
  public MyClassA : IClass
  {
      public MyClassType Type { get { return MyClassType.TypeA; } }
  }
  
  [ExportMetadata("Type", MyClassType.TypeB)]
  public MyClassB : IClass
  {
      public MyClassType Type { get { return MyClassType.TypeB; } }
  }
  
  //...Then in my bootstrapping class where I set up the MEF container...
  
  var registrationBuilder = new RegistrationBuilder();
  registrationBuilder.ForTypesDerivesFrom&lt;IClass&gt;()....
  // How do I specify a filter in ^ to say only export the implementation with MetaData.Type == MyClassA or instance.Type == MyClassA.
  </code></pre>