代码之家  ›  专栏  ›  技术社区  ›  Louis Rhys

什么是AggregateCatalog?

  •  17
  • Louis Rhys  · 技术社区  · 15 年前

    是什么 AggregateCatalog ? 当你构建一个 new AggregateCatalog() ? 将程序集添加到目录中意味着什么 catalog.Catalogs.Add(new AssemblyCatalog(someAssembly)) ? 除了程序集,您可以向目录中添加什么?任何与此相关的常识也会有帮助的(我完全不懂)

    2 回复  |  直到 15 年前
        1
  •  18
  •   Den    15 年前

    AggregateCatalog 在MEF中,基本上允许您收集多个扩展目录。当你打电话 new AggregateCatalog() ,基本上是实例化一个新的目录集合(不一定填充),该集合可以包含ComposablePartCatalog的多个实例,ComposablePartCatalog可以包含多个部分。

    把它看作一个类,帮助您从多个集合中收集部件。

    程序集只是将部件推送到调用应用程序的一种方法。可以直接从现有组件内部传递部件。

    有关目录的更多信息,我建议您阅读 this .

        2
  •  4
  •   Gishu    15 年前

    Mef有一个小的学习曲线-至少浏览一次Mef.codeplex.com上的文档。如果时间紧迫,也可以试试截图。

    其思想是,目录是导出部件(要注入的对象)或需要导入的部件(需要注入的对象)的字典。。目录可以以多种方式填充(因此 the diff Catalog derivations )--从目录(目录中的所有asm)或特定程序集。

    接下来,您可以创建一个复合目录,例如,您想创建一个包含从DirA和这个位于DirB中的特定程序集导出的所有对象的字典。在这种情况下,可以创建单独的目录,然后创建一个将两者合并的复合目录。现在,您可以在代码中使用此合并字典来请求导入/导出。

    推荐文章