2009-10-19 3 views
0

Я не уверен, что это возможно, но в настоящее время я загружаю большинство своих модулей из основной сборки приложения, теперь я пытаюсь загрузить внешние модули XAP.Silverlight PRISM загружает внешний модуль XAP

У меня есть что-то вроде этого:

ModuleInfo themeModule = new ModuleInfo(); 
    themeModule.ModuleName = "Theme_External"; 
    themeModule.ModuleType = "Theme_External.Theme_External_Module, Theme_External, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"; 
    themeModule.Ref = "file://Theme_External.xap"; 
    themeModule.InitializationMode = InitializationMode.OnDemand; 
    catalog.AddModule(themeModule); 

Я тогда понял, что вы не можете использовать этот реф, как он использует локальный доступ к файлам, который не доступен в Silverlight. Единственная причина, по которой это работало для меня, - это прямая ссылка на тематический проект, который мне нужно удалить. Я хотел бы либо указать на него, скажем, http://localhost/Theme_External.xap или удаленный веб-адрес позже по линии.

Является ли это чем-то, что я могу сделать с существующей настройкой PRISM?

Спасибо за ваше время

ответ

1

Вы можете скачать XAP файлы по требованию тех пор, пока они находятся в том же домене, что и основное приложение. Существует обширная статья о динамической доставке данных в Silverlight here.

Если вы хотите скачать XAP-файл, размещенный в другом домене, вам нужно будет иметь Cross-Domain Policy file в этом домене.

2

Что сказал Дейв ...

и в случае, если это не очевидно, единственное изменение, которое вы должны были бы сделать (если предположить, что ваши XAP файлы находятся в том же каталоге), чтобы установить реф недвижимость до:

themeModule.Ref = "Theme_External.xap"; 

Повторные URL будут работать, если они находятся в каталоге ниже, чем файл оболочки xap. Если нет, вам понадобится абсолютный URL-адрес.

Смежные вопросы