Pergunta

O que é AggregateCatalog? O que isso significa quando você constrói um new AggregateCatalog()? O que isso significa quando você adiciona montagens ao catálogo, por exemplo, catalog.Catalogs.Add(new AssemblyCatalog(someAssembly))? Além de assemblies, o que você pode adicionar ao catálogo? Qualquer conhecimento geral relacionado a isso também seria útil (sou um noob total)

Foi útil?

Solução

AggregateCatalog No MEF, basicamente permite que você colete vários catálogos de extensão. Quando Você ligar new AggregateCatalog(), você está basicamente instanciando uma nova coleção de catálogos (não necessariamente preenchida) que pode conter várias instâncias de compostablePartCatalog, que podem conter várias partes.

Considere uma classe que ajuda a coletar peças de vários conjuntos.

As montagens são apenas uma maneira de empurrar as peças para o aplicativo de chamada. Você pode passar peças diretamente de dentro da montagem existente.

Para mais informações sobre catálogos, eu recomendaria ler isto.

Outras dicas

O MEF tem uma pequena curva de aprendizado - vá através dos documentos em mef.codeplex.com pelo menos uma vez. Ou tente screencasts se você estiver realmente pressionado pelo tempo.

A idéia é que um catálogo seja um dicionário de peças exportadas (objetos a serem injetados) ou partes que precisam de importações (que precisam de objetos injetados). O catálogo pode ser preenchido de várias maneiras (daí as derivações do catálogo diff) - de um diretório (todos asm em um diretor) ou uma montagem específica.

Em seguida, você pode criar um catálogo composto, por exemplo, você deseja criar um único dicionário que contenha todos os objetos exportados da DIRA e a partir deste conjunto específico em DIRB. Nesse caso, você pode criar catálogos individuais e, em seguida, um catálogo composto que mescla os dois. Agora você consome este dicionário mesclado em seu código para solicitar importações/exportações.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top