J'ai une exportation définie comme comme suit MEF preview 5partie d'importation avec des métadonnées spécifiques à l'aide MEF Preview 5
[ExportMetadata("Application", "CheckFolderApplication")]
[Export(typeof(ExtendedArtifactBase))]
public class CheckFolderArtifact2 : ExtendedArtifactBase
{ ...
Je ne veux que ces importations avec les métadonnées « Application » de « CheckFolderApplication ». Pour ce faire, je lis tous les les importations, puis filtrer le résultat.
[Import(typeof(ExtendedApplicationBase))]
private ExportCollection<IApplication> _applications { get; set; }
public IApplication GetApplication(string applicationName)
{
return _applications.Single(a => a.GetExportedObject().Name == applicationName).GetExportedObject();
}
Cela semble vraiment inefficace. Que se passe-t-il si j'ai des milliers de plug-ins - dois-je les lire tous via MEF pour en obtenir un avec les bonnes métadonnées? Si oui, comment cachez-vous le résultat?
Merci Daniel, c'est une application web ASP.NET MVC, je dois trouver une autre façon de la mettre en cache ... – Riri
Cette situation est-elle modifiée à tout en .Net 4.0 ou est-ce toujours la même chose? –
@Tim C'est toujours la même chose dans .Net 4. –