MEF GetExports <T, TMetaDataView> não retornando nada com AllowMultiple = True

Eu não entendo muito bem o MEF, então espero que isso seja uma simples correção de como eu acho que funciona.

Estou tentando usar o MEF para obter algumas informações sobre uma classe e como ela deve ser usada. Estou usando as opções de metadados para tentar alcançar isso. Minhas interfaces e atributos são assim:

public interface IMyInterface
{
}

public interface IMyInterfaceInfo
{
    Type SomeProperty1 { get; }
    double SomeProperty2 { get; }
    string SomeProperty3 { get; }
}

[MetadataAttribute]
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
public class ExportMyInterfaceAttribute : ExportAttribute, IMyInterfaceInfo
{
    public ExportMyInterfaceAttribute(Type someProperty1, double someProperty2, string someProperty3)
        : base(typeof(IMyInterface))
    {
        SomeProperty1 = someProperty1;
        SomeProperty2 = someProperty2;
        SomeProperty3 = someProperty3;
    }

    public Type SomeProperty1 { get; set; }
    public double SomeProperty2 { get; set; }
    public string SomeProperty3 { get; set; }
}

A classe que é decorada com o atributo se parece com isso:

[ExportMyInterface(typeof(string), 0.1, "whoo data!")]
[ExportMyInterface(typeof(int), 0.4, "asdfasdf!!")]
public class DecoratedClass : IMyInterface
{
}

O método que está tentando usar a importação se parece com isto:

private void SomeFunction()
{
    // CompositionContainer is an instance of CompositionContainer
    var myExports = CompositionContainer.GetExports<IMyInterface, IMyInterfaceInfo>();
}

No meu casomyExports está sempre vazio. No meu CompositionContainer, eu tenho uma parte no meu catálogo que tem doisExportDefinitions, ambos com os seguintesContractName: "MyNamespace.IMyInterface". oMetadata também é carregado corretamente por minhas exportações.

Se eu remover oAllowMultiple setter e incluir apenas um atributo exportado, omyExports variável agora tem a única exportação com seus metadados carregados.

O que estou fazendo de errado?

EDIT: Se eu usar Metadados fracamente digitados, minha exportação é repentinamente satisfeita:

var myExports = CompositionContainer.GetExports<IMyInterface, IDictionary<string, object>>();

Alguma idéia por quê?

questionAnswers(1)

yourAnswerToTheQuestion