我正在使用 Prism(又名复合应用程序指南)构建 Silverlight 4.0 应用程序。我有两个模块,都在我的ModuleCatalog.xaml中定义为WhenAvailable。我的 Application_OnStart 实例化了我的引导程序并调用它的Run()方法。在我的应用程序启动并启动并运行之后(实际上,用户必须单击 UI 中的按钮),然后我尝试加载模块:
foreach (ModuleInfo mi in moduleCatalog.Modules)
...
Type moduleType = Type.GetType(mi.ModuleType); // moduleType ends up null!
有时,moduleType最终为 null。我已经验证,当我遇到 null 时,ModuleInfo 的状态是LoadingTypes而不是ReadyForInitialization。我认为这意味着它仍在为我的模块下载单独的 *.xap 文件并将它们的类型带入应用程序域。
那么我能做什么呢?如果我知道有一些事件我可以听以知道它们终于都加载了,我会很乐意阻止。