Я пытаюсь реализовать заводскую модель с использованием MEF. то, что я делаю, имеет интерфейс класса продукта и позволяет экспортировать конкретные классы с метаданными, которые различаются в каждом конкретном классе. в классе Factory у меня есть список Лазы загружен интерфейс Продуктов вместе с соответствующими метаданными, следующим образом:Заводской шаблон MEF с параметризованным конструктором
[ImportMany("Product")]
public List<Lazy<IProduct, IProductMetaData>> ProductTypes;
затем в функции создания я фильтр, что вышеупомянутый перечень видов продукции, чтобы вернуть одну реализации заданной как параметр для функции создания:
public IProduct CreateProduct(string type)
{
var productType = ProductTypes.FirstOrDefault(x => x.Metadata.Type == type);
return productType .Value;
}
до этого пункт все хорошо работает. но что, если каждый из конкретных классов Product, возвращаемых фабричным классом, имеет параметр в своем конструкторе. ???