Модуль призмы Silverlight не готов - PullRequest
0 голосов
/ 09 июня 2010

Я создаю приложение Silverlight 4.0 с Prism (a.k.a. Руководство по составным приложениям). У меня есть два модуля, оба определены в моем ModuleCatalog.xaml как WhenAvailable . Мой Application_OnStart создает экземпляр моего Bootstrapper и вызывает метод Run () . После запуска и запуска моего приложения (на самом деле пользователь должен нажать кнопку в пользовательском интерфейсе), я пытаюсь загрузить модули:

foreach (ModuleInfo mi in moduleCatalog.Modules)
    ...
    Type moduleType = Type.GetType(mi.ModuleType); // moduleType ends up null!

Иногда moduleType обнуляется. Я убедился, что при обнаружении нулевого значения Состояние ModuleInfo равно Типы загрузки , а не ReadyForInitialization . Я предполагаю, что это означает, что он все еще загружает отдельные файлы * .xap для моих модулей и переносит их типы в домен приложения.

Так что я могу сделать? Я бы с радостью заблокировал, если бы знал, что есть какое-то событие, которое я мог бы послушать, чтобы знать, что они, наконец, все загружены.

1 Ответ

0 голосов
/ 14 сентября 2010

Если вы собираетесь использовать Prism, вы не должны обходить его и создавать свои модули самостоятельно.Это не способ, которым Призма должна работать.Prism не предоставляет событие для завершения загрузки, поскольку это не то, что вам нужно делать.

Простой случай:

Если вы определите каталог модулей, то все эти модули будут загружаться постепенно,так что нет необходимости загружать их вручную в этом простом случае.Вы можете создать загрузочный модуль в своем корневом приложении Silverlight с несколькими зависимостями модулей, и этого будет достаточно, чтобы сделать видимой первую страницу во время загрузки приложения.

Требуется дополнительная информация:

Я не могу сказать, что вы на самом деле пытаетесь выполнить из приведенного выше фрагмента, поэтому может помочь дополнительная информация, но вы должны использовать Unity для разрешения интерфейсов, а не напрямую Type.GetType ().Как правило, вам не нужно разрешать сам модуль, а также есть методы для запуска загрузки по требованию в Prism (не делайте их удобными в данный момент ... обновим это).

Спасибо:

Вы случайно предоставили ключ к ответу на другой вопрос, который я задал в переполнении стека, так что спасибо за это.

...