PRISM中的CreateModuleCatalog()和ConfigureModuleCatalog[()有什么区别



基本上。。。

    protected override IModuleCatalog CreateModuleCatalog()
    {
        var catalog = base.CreateModuleCatalog();
        var moduleInfo = new ModuleInfo("HelloWorldModule", "Testing.HelloWorldModule"));
        catalog.AddModule(moduleInfo);
        return catalog;
    }
    protected override void ConfigureModuleCatalog()
    {
        ModuleCatalog moduleCatalog = (ModuleCatalog)this.ModuleCatalog;
        moduleCatalog.AddModule(typeof(Testing.HelloWorldModule));
    }

他们在这里似乎都在做同样的事情,那么真正的区别是什么?我想我在问你应该做什么不同于他们内部的事情(因为很明显我可以移动代码(。

PRISM的run方法首先调用CreateModuleCatalog并将其返回值分配给BootStrapper.ModuleCatalog。所以实际上你必须在那里创建ModuleCatalog。对于配置,您可以使用任何一种方法,唯一的区别是,在日志中显示潜在的异常。例如,MefBootstrapper.Run中的相关代码如下:

        this.Logger.Log(Resources.CreatingModuleCatalog, Category.Debug, Priority.Low);
        this.ModuleCatalog = this.CreateModuleCatalog();
        if (this.ModuleCatalog == null)
        {
            throw new InvalidOperationException(Resources.NullModuleCatalogException);
        }
        this.Logger.Log(Resources.ConfiguringModuleCatalog, Category.Debug, Priority.Low);
        this.ConfigureModuleCatalog();

最新更新