2016-03-19 6 views
1

Я пытаюсь реализовать заводскую модель с использованием 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, возвращаемых фабричным классом, имеет параметр в своем конструкторе. ???

ответ

0

Пока Product классы имеют ImportingConstructor декорирования сказали конструктор, MEF будет заботиться об удовлетворении этого импорта, когда класс фактически обрабатывается (при доступе Value свойства ленивого объекта), так что вам нечего беспокоиться ,

 Смежные вопросы

  • Нет связанных вопросов^_^