2010-09-08 5 views
2

J'ai une liste d'usercontrols que j'ai importés via l'attribut ImportMany. Voir le segment de code suivant:MEF: Quel est le contraire du Lazy <T> Type?

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

Donc, si j'ajoute chaque enregistrement de données Lazy à une valeur par ex. combobox, l'enregistrement de données ne sera pas chargé, car il est marqué comme paresseux (conséquence! :-))

Maintenant, ma question - quel est le contraire de Lazy ?. Je ne pouvais pas importer les métadonnées dans un dictionnaire comme celui-ci:

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

Merci à l'avance,

patrick

+3

Actif ... mauvaise blague je sais – Spooks

+0

@Spooks: encore réfléchi ... – IAbstract

+0

J'allais dire ambitieux ... –

Répondre

0

Vous devez importer dans un Lazy si vous voulez obtenir les métadonnées. Lorsque vous accédez à la propriété Value, le contrôle sera créé. Vous pouvez donc ajouter les valeurs à votre zone de liste déroulante.

0

vous pouvez essayer ExportFactory. c'est plus ou moins le contraire de paresseux en quelque sorte :) ExportFactory n'est pas construit pour wpf donc vous devez regarder sur mef.codeplex.com il y a le projet exemple.

Questions connexes