Я создаю приложение Silverlight 4.0 с помощью Prism (также известное как руководство по составным приложениям). У меня есть два модуля, оба определены в моем ModuleCatalog.xaml как WhenAvailable. Мой Application_OnStart создает экземпляр моего Bootstrapper и вызывает его метод Run (). После того, как мое приложение запущено и запущено (фактически, пользователь должен нажать кнопку в пользовательском интерфейсе), я затем пытаюсь загрузить модули:
foreach (ModuleInfo mi in moduleCatalog.Modules)
...
Type moduleType = Type.GetType(mi.ModuleType); // moduleType ends up null!
Иногда moduleType оказывается равным нулю. Я убедился, что когда я обнаруживаю значение null, для ModuleInfo State установлено значение LoadingTypes, а не ReadyForInitialization. Я предполагаю, что это означает, что он все еще загружает отдельные файлы * .xap для моих модулей и переносит их типы в домен приложения.
Так что я могу сделать? Я бы с радостью заблокировал, если бы знал, что есть какое-то событие, которое я мог бы прослушать, чтобы узнать, что они наконец все загружены.