Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# PRISM中CreateModuleCatalog()和ConfigureModuleCatalog()之间的区别是什么?_C#_Wpf_Module_Prism_Catalog - Fatal编程技术网

C# PRISM中CreateModuleCatalog()和ConfigureModuleCatalog()之间的区别是什么?

C# PRISM中CreateModuleCatalog()和ConfigureModuleCatalog()之间的区别是什么?,c#,wpf,module,prism,catalog,C#,Wpf,Module,Prism,Catalog,基本上 protected override IModuleCatalog CreateModuleCatalog() { var catalog = base.CreateModuleCatalog(); var moduleInfo = new ModuleInfo("HelloWorldModule", "Testing.HelloWorldModule")); catalog.AddModule(moduleInfo);

基本上

    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));
    }

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

PRISMs
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();

PRISMs
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();