Cos'è AggregateCatalog?
-
27-09-2019 - |
Domanda
Cos'è AggregateCatalog
? Cosa significa quando costruisci a new AggregateCatalog()
? Cosa significa quando si aggiungono assemblaggi al catalogo, ad es. catalog.Catalogs.Add(new AssemblyCatalog(someAssembly))
? Oltre agli assemblys Cosa puoi aggiungere al catalogo? Anche qualsiasi conoscenza generale relativa a questo sarebbe utile (sono un noob totale)
Soluzione
AggregateCatalog
In MEF fondamentalmente ti consente di raccogliere più cataloghi di estensione. Quando chiami new AggregateCatalog()
, stai fondamentalmente istanziando una nuova raccolta di cataloghi (non necessariamente popolata) che può contenere più istanze di composiblepartcatalog, che può contenere più parti.
Consideralo una classe che ti aiuta a raccogliere parti da più set.
Gli assiemi sono solo un modo per spingere le parti all'applicazione chiamante. È possibile passare parti direttamente dall'interno del gruppo esistente.
Per ulteriori informazioni sui cataloghi, consiglierei la lettura questo.
Altri suggerimenti
MEF ha una piccola curva di apprendimento - vai attraverso i documenti di MEF.Codeplex.com Atleast una volta. Oppure prova gli screencast se sei davvero premuto per il tempo.
L'idea è che un catalogo sia un dizionario di parti esportate (oggetti da iniettare) o parti che necessitano di importazioni (che necessitano di oggetti iniettati). Il catalogo può essere popolato in più modi (quindi le derivazioni del catalogo diff) - da una directory (tutto ASM in un dir) o un gruppo specifico.
Successivamente è possibile creare un catalogo composito, ad esempio, si desidera creare un singolo dizionario che contenga tutti gli oggetti esportati da Dira e da questo gruppo specifico che giace in sporce. In questo caso, è possibile creare singoli cataloghi e quindi un catalogo composito che unisce i due. Ora consumi questo dizionario unito nel tuo codice per chiedere importazioni/esportazioni.