有人可以解释在Prism shell中调用GetModuleCatalog (Microsoft.Practices.Composite.UnityExtensions.UnityBootstrapper.GetModuleCatalog())
的位置吗?我知道它需要在应用程序Bootstrapper中被覆盖,但在运行Bootstrapper时我无法找到它在内部调用的位置。
答案 0 :(得分:0)
当您从Bootstrapper调用Run()时,ModuleManager会调用它。如果你查看implementation of the UnityBootstrapper,你会在Run()方法中看到这行代码:
this.InitializeModules();
这种方法反过来做到了这一点:
IModuleManager manager;
manager = this.Container.Resolve<IModuleManager>();
manager.Run();
因此,现在查看IModuleManager的默认实现(只是ModuleManager),您会看到模块初始化。如果您想仔细阅读ModuleManager代码,可以在codeplex上看到它: ModuleManager.cs