Silverlight Assembly.Load()仅适用于完整/强名称

显然,Silverlight中的Assembly.Load()实现需要一个完整/强名称。

例如,这工作:

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

虽然MyAssembly已经加载,但这将失败:

 Assembly.Load("MyAssembly"); 

有没有解决方法,以便可以使用简单的名称?

据我所知,没有办法在没有使用全名的情况下在Silverlight中解决这个问题。 但是,您可能能够以另一种方式实现您的最终目标(取决于您尝试做的事情)。 例如,XAML解析器对程序集名称更加宽容,所以如果你只是想在该程序集中创建一个类的实例(使用默认构造函数),那么就像

XamlReader.Load("")

应该做的伎俩。

我解决这个问题的一种方法是在我需要获取引用的程序集中包含的类型上使用typeof

 var assembly = typeof(MyNamespace.SubNamespace.Type).Assembly;