Silverlight的Assembly.Load()只能使用完整/强名称。

3

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

例如,这样可以正常工作:

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

即使MyAssembly已经被加载,以下代码仍将失败:

Assembly.Load("MyAssembly");

有没有一种方法可以绕过去,以便使用简单名称?
2个回答

2
据我所知,在Silverlight中没有办法绕过这个问题而不使用完整名称。然而,如果您只是想在该程序集中创建一个类的实例(使用默认构造函数),则可以通过另一种方式来实现您的最终目标(具体取决于您要做什么)。例如,XAML解析器对程序集名称更加宽容,因此,像下面这样的东西就可以解决问题:
XamlReader.Load("<my:ClassName xmlns:my='clr-namespace:MyNamespace;assembly=MyAssemblyShortName' />")

0
一种我解决此问题的方式是在需要获取引用的程序集中使用typeof来获取类型。
var assembly = typeof(MyNamespace.SubNamespace.Type).Assembly;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接