MEF: Что противоположно типу Lazy <T>? - PullRequest
2 голосов
/ 08 сентября 2010

У меня есть список пользовательских элементов управления, которые я импортировал через атрибут ImportMany. Смотрите следующий сегмент кода:

[ImportMany]
private List<Lazy<IUserControl, ILinkerMetadata>> UserControlsMetaData { get; set; }

Так что, если я добавлю каждую запись данных Lazy, например, В выпадающем списке запись данных не будет загружена, поскольку она помечена как Ленивая (последовательно!

Теперь мой вопрос - что противоположно Ленивому? Я не мог импортировать метаданные в словарь, подобный этому:

[ImportMany]
private Dictionary<IUserControl, ILinkerMetadata> UserControlsMetaData {get; set;}

Заранее спасибо,

патрик

Ответы [ 2 ]

0 голосов
/ 09 сентября 2010

вы можете попробовать ExportFactory. это более или менее противоположно ленивому в некотором роде :) ExportFactory не встроен для wpf, поэтому вы должны посмотреть на mef.codeplex.com, есть пример проекта.

0 голосов
/ 08 сентября 2010

Вы должны импортировать в Lazy, если вы хотите получить метаданные.При доступе к свойству Value будет создан элемент управления, поэтому вы можете добавить значения в ComboBox.

...