gpt4 book ai didi

c# - PRISM 中的 CreateModuleCatalog() 和 ConfigureModuleCatalog() 有什么区别?

转载 作者:太空宇宙 更新时间:2023-11-03 16:39:37 25 4
gpt4 key购买 nike

基本上...

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

关于c# - PRISM 中的 CreateModuleCatalog() 和 ConfigureModuleCatalog() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8071748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com