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

时间:2010-06-10 14:48:45

标签: c# .net silverlight silverlight-4.0

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

E.g。这有效:

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

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

Assembly.Load("MyAssembly");

是否有解决方法以便可以使用简单名称?

2 个答案:

答案 0 :(得分:2)

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

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

应该这样做。

答案 1 :(得分:0)

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

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