Я хочу использовать MEF в качестве DI для моего проекта.У меня есть 1 проект, и все классы, которые должны быть составлены, находятся там (они имеют один интерфейс).Теперь я хочу создать один из них, указав значение метаданных.Вот определения:
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
{
...
}
Теперь я хочу создать экземпляр TestReader1 через MEF, но я не знаю, как фильтровать по метаданным через CompositionContainer.Я хочу что-то вроде
Container.GetExportedValue<IGatewayResponseReader>();
Но указать метаданные, чтобы выбрать, какой экземпляр класса создать.
Ваша помощь очень ценится.
Спасибо.