如何向我的引导程序指示从文件夹和内存加载模块?

时间:2012-09-08 15:39:35

标签: c# prism mef bootstrapping

在我的MEF应用程序中,我计划从两个方面加载模块。

一种方式就是这样。

    protected override void ConfigureAggregateCatalog()
    {
        this.AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof(PEMDAS.ModuleInit).Assembly));
        this.AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof(Bootstrapper).Assembly));
        this.AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof(Infrastructure.ObservableCommand).Assembly));
        this.AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof(Security.SecurityModule).Assembly));
        this.AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof(Tests.ModuleInit).Assembly));
    }

另一个是在文件夹中查找程序集。我认为可以使用这两种方式。我计划首先加载文件夹,然后加载ConfigureAggregateCatalog

1 个答案:

答案 0 :(得分:2)

如果我正确理解您的问题,您想知道如何从文件夹中的.dll程序集加载模块。这可以使用DirectoryCatalog完成。

//First create directory catalog and load modules from .dlls.
var dirCatalog = new DirectoryCatalog(folderToSearch, "*.dll");
this.AggregateCatalog.Catalogs.Add(dirCatalog);

//Next load the rest of the modules.
ConfigureAggregateCatalog();