Question

Qu'est-ce que AggregateCatalog? Qu'est-ce que cela signifie lorsque vous construisez un new AggregateCatalog()? Qu'est-ce que cela signifie lorsque vous ajoutez des assemblages au catalogue, par exemple catalog.Catalogs.Add(new AssemblyCatalog(someAssembly))? Autre que des assemblages, que pouvez-vous ajouter au catalogue? Toute connaissance générale liée à cela serait également utile (je suis un noob total)

Était-ce utile?

La solution

AggregateCatalog Dans MEF vous permet essentiellement de collecter plusieurs catalogues d'extension. Quand vous appelez new AggregateCatalog(), vous instancez essentiellement une nouvelle collection de catalogue (pas nécessairement peuplée) qui peut contenir plusieurs instances de ComposablePartCatalog, qui peuvent contenir plusieurs pièces.

Considérez-le comme une classe qui vous aide à collecter des pièces à partir de plusieurs ensembles.

Les assemblages ne sont qu'un moyen de pousser les pièces vers l'application d'appel. Vous pouvez passer des pièces directement à l'intérieur de l'assemblage existant.

Pour plus d'informations sur les catalogues, je recommanderais de lire cette.

Autres conseils

MEF a une petite courbe d'apprentissage - passez par les documents sur mef.codeplex.com au moins une fois. Ou essayez des screencasts si vous êtes vraiment pressé par le temps.

L'idée est qu'un catalogue est un dictionnaire de pièces exportées (objets à injecter) ou des pièces qui ont besoin d'importations (qui nécessitent des objets injectés). Le catalogue peut être rempli de plusieurs manières (donc les dérivations du catalogue Diff) - à partir d'un répertoire (tous ASM dans un DIR) ou d'un assemblage spécifique.

Ensuite, vous pouvez créer un catalogue composite, par exemple, vous souhaitez créer un seul dictionnaire qui contient tous les objets exportés à partir de Dira et à partir de cet assemblage spécifique se trouvant dans Dirb. Dans ce cas, vous pouvez créer des catalogues individuels, puis un catalogue composite qui fusionne les deux. Vous consommez maintenant ce dictionnaire fusionné dans votre code pour demander des importations / exportations.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top