Как загрузить сборку из потока или байта [] в WP7? - PullRequest
7 голосов
/ 13 июня 2011

Я хочу загрузить сборку во время выполнения, используя либо поток, либо байтовый массив.

В .net вы можете использовать Assembly.Load(Byte[], Byte[]) http://msdn.microsoft.com/en-us/library/twt16z2x.aspx

В стандартном Silverlight вы можете использовать AssemblyPart.Load() http://msdn.microsoft.com/en-us/library/cc190521%28v=VS.96%29.aspx

Но в Windows Phone 7 ни один из этих методов не доступен.

1 Ответ

10 голосов
/ 13 июня 2011

Ну, как вы в значительной степени обнаружили;ты не можешь сделать этоКонструкция не позволяет загружать сборку, которая не поставляется в вашем XAP.Это проект безопасности, поскольку они не хотят, чтобы вы загружали и запускали произвольный код, который не прошел проверку Marketplace.

Это на уровне того, как Apple контролирует свой App Store.Почему этого функционала нет и почему я сомневаюсь, что он будет добавлен:

  1. Торговая площадка.Microsoft требует, чтобы все Приложения прошли проверку черного ящика.Они, вероятно, ищут ряд вещей, таких как производительность, серьезные ошибки, рискованный материал и согласованность пользовательского интерфейса.Разрешение разработчику загружать и запускать любую сборку полностью обходит Marketplace.Это вредит пользователю несколькими способами.Первый в том, что разработчик будет соблазн использовать его как средство распространения обновлений за пределами Marketplace или красться в особенности (как порно), что Microsoft не позволяет на их площадке.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...