1

有人可以解释一下在GetModuleCatalog (Microsoft.Practices.Composite.UnityExtensions.UnityBootstrapper.GetModuleCatalog())Prism shell 中调用的位置吗?我知道它需要在应用程序 Bootstrapper 中被覆盖,但是在运行 Bootstrapper 时我无法找到它在内部被调用的位置。

4

1 回答 1

0

当从 Bootstrapper 调用 Run() 时,ModuleManager 会调用它。如果您查看UnityBootstrapper 的实现,您会在 Run() 方法中看到这行代码:

this.InitializeModules();

反过来,此方法执行以下操作:

IModuleManager manager;   
manager = this.Container.Resolve<IModuleManager>();        
manager.Run();

因此,现在查看 IModuleManager(只是 ModuleManager)的默认实现,您会看到模块正在初始化。如果您想仔细阅读 ModuleManager 代码,可以在 codeplex 上看到它: ModuleManager.cs

于 2009-09-04T16:55:49.037 回答