Silverlight Assembly.Load () работает только с полным / строгим именем - PullRequest
3 голосов
/ 10 июня 2010

Очевидно, что для реализации Assembly.Load () в Silverlight требуется полное / строгое имя.

например. это работает:

Assembly.Load("MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=...");

пока это не будет выполнено, даже если MyAssembly уже загружена:

Assembly.Load("MyAssembly");

Есть ли обходной путь, чтобы можно было использовать простое имя?

Ответы [ 2 ]

2 голосов
/ 10 июня 2010

Насколько я знаю, в Silverlight нет способа обойти это без использования полного имени.Тем не менее, вы можете достичь своей конечной цели (в зависимости от того, что вы пытаетесь сделать) другим способом.Например, синтаксический анализатор XAML немного больше прощает имена сборок, поэтому, если вы просто пытаетесь создать экземпляр класса в этой сборке (используя конструктор по умолчанию), то что-то вроде

XamlReader.Load("<my:ClassName xmlns:my='clr-namespace:MyNamespace;assembly=MyAssemblyShortName' />")

должен сделать трюк.

0 голосов
/ 28 ноября 2010

Один из способов обойти это - использовать typeof для типа, содержащегося в сборке, на который мне нужно получить ссылку:

var assembly = typeof(MyNamespace.SubNamespace.Type).Assembly;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...