Глядя на образец игры с формами, который поставляется с MEF, мы видим класс ShapeFactory:
[Export]
public class ShapeFactory
{
private readonly Random random = new Random((int)DateTime.Now.Ticks);
[Import]
private ICompositionService CompositionService { get; set; }
public IShape GetRandomShape()
{
var shapeRetriever = new ShapeRetriever();
CompositionService.SatisfyImports(shapeRetriever);
int randomIndex = random.Next(shapeRetriever.PossibleShapes.Length);
return shapeRetriever.PossibleShapes[randomIndex].GetExportedObject();
}
private class ShapeRetriever
{
[ImportMany(RequiredCreationPolicy = CreationPolicy.NonShared)]
public Export<IShape, IShapeMetadata>[] PossibleShapes { get; set; }
}
}
Что демонстрирует создание экземпляров произвольной формы "по требованию" ... Я думаю, что в вашем сценарии вы могли бы сделать что-то подобное без выбора случайной реализации, поскольку вы предполагаете, что будет зарегистрирована только одна реализация ILedPanel.