Динамическая / по требованию загрузка зависимостей XAP с использованием MEF? - PullRequest
1 голос
/ 23 февраля 2011

Я читал статью: http://www.codeproject.com/KB/silverlight/MEFDynamicLoading.aspx который описывает, как можно динамически загружать XAP с использованием MEF. В нем говорится, что на общие библиотеки следует ссылаться, если для параметра copy local установлено значение false. Это прекрасно работает, если в xap 'host' на них также есть ссылка с параметром copy local, установленным в true, однако я не хочу поддерживать этот сценарий. Мое приложение имеет что-то вроде древовидной структуры. С предметами одного уровня часто (но не всегда) разделяются большие (может быть, до 1 МБ) зависимости. Я хочу загрузить эти зависимости, только если / когда они необходимы. Очевидной вещью было бы просто установить для локального копии значение true, но я хочу убедиться, что зависимости загружаются только один раз. Даже если пользователь затем перемещается в другие области приложения, которые требуют зависимостей.

В качестве заключительной пары пунктов: Я хочу иметь возможность загружать эти зависимости заранее. то есть когда я знаю, что приложение не делает ничего более стоящего. Я также буду использовать автономный каталог, описанный в http://www.wintellect.com/CS/blogs/jlikness/archive/2010/05/25/silverlight-out-of-browser-dynamic-modules-in-offline-mode.aspx, чтобы обеспечить его корректную работу вне браузера.

1 Ответ

1 голос
/ 06 апреля 2011

Честно говоря, единственный способ действительно сделать это, если вы не хотите иметь локальные ссылки в основном XAP, это взломать манифест и разобрать его самостоятельно, а не использовать каталог развертывания. Вам нужно будет в основном использовать методы, которые я представил в автономном каталоге, и сохранить словарь ссылок уже загруженным. Затем вы можете скопировать локальный файл для всего, и код будет проверяться и загружаться в сборку, на которую есть ссылки, только если она не была загружена ранее.

...