2010-06-10 57 views
3

显然,Silverlight中Assembly.Load()的实现需要全名/强名称。Silverlight Assembly.Load()仅适用于全名/强名称

E.g.这个工程:

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

而如果MyAssembly程序已经加载,这将甚至无法:

Assembly.Load("MyAssembly"); 

有一种解决方法,以便它可以使用简单的名字吗?

回答

2

据我所知,没有一种方法可以在不使用全名的情况下在Silverlight中解决此问题。但是,您可能能够以另一种方式实现您的最终目标(取决于您想要做什么)。例如,XAML分析器是多一点宽容有关程序集名称,所以如果你只是想在装配中创建一个类的实例(使用默认构造函数),然后像

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

应该做的伎俩。我周围这让

0

一个办法是包含在组件中的类型,我需要得到一个参考使用typeof

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