Использовать отражение для итерации типов во всех ссылочных сборках, в Silverlight? - PullRequest
5 голосов
/ 06 августа 2011

Есть ли эквивалент этого в silverlight?

 var assemblies = AppDomain.CurrentDomain.GetAssemblies();

http://msdn.microsoft.com/en-us/library/system.appdomain.getassemblies(v=VS.95).aspx

Есть ли другой способ сделать это?

Вот пост о том, каксделать это для времени разработки в режиме смешивания ... но как во время выполнения?

http://joshsmithonwpf.wordpress.com/2010/01/06/the-ultimate-hack-for-silverlight-in-blend/


Не похоже, что это возможно:

Получение сборок времени выполнения в Silverlight 3

http://forums.silverlight.net/p/22050/77847.aspx

http://forums.silverlight.net/t/22050.aspx/1?Get+a+list+of+loaded+assemblies

Ответы [ 2 ]

6 голосов
/ 12 января 2012

Я не заставляю его работать в моем проекте SL4, но я пытался привести текущий домен к динамическому, и он работает, фиктивный обходной путь, пока я не получу VS2010, чтобы узнать, что я использую правильный mscorlib.

Обходной путь обхода:

var loadedAssemblies = ((dynamic)Thread.GetDomain()).GetAssemblies()as Assembly[]; 
4 голосов
/ 06 августа 2011

Вопрос изначально задавал что-то эквивалентное Assembly.GetExecutingAssembly().GetAvailableTypes() в Silverlight, так что это мой первый ответ.

Silverlight поддерживает отражение:

  • Assembly.GetExecutingAssembly() поддерживается в Silverlight, включая Windows Phone 7 и XBox 360.
  • Assembly.GetExportedTypes() и Assembly.GetTypes() поддерживаются в Silverlight, включая Windows 7 и XBox 360.

См. Документацию и выберите «Silverlight» в качестве версии для подробностей.

Обновление

  • AppDomain.CurrentDomain поддерживается в Silverlight 3 и 4.
  • AppDomain.GetAssemblies() поддерживается в Silverlight 4.

Самое простое - перейти на Silverlight 4 вместо обходных путей.

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