Silverlight Assembly.Load() only works with the full/strong name
Apparently the implementation of Assembly.Load() in Silverlight needs a full/stron开发者_如何学Cg name.
E.g. this works:
Assembly.Load("MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=...");
while this will fail even if MyAssembly is already loaded:
Assembly.Load("MyAssembly");
Is there a workaround so that it's possible to use the simple name?
As far as I know, there isn't a way to work around this in Silverlight without using the full name. However, you may be able to accomplish your ultimate goal (depending on what you're trying to do) in another way. For example, the XAML parser is a little more forgiving about assembly names, so if you're just trying to create an instance of a class within that assembly (using the default constructor), then something like
XamlReader.Load("<my:ClassName xmlns:my='clr-namespace:MyNamespace;assembly=MyAssemblyShortName' />")
should do the trick.
One way that I got around this was to use typeof
on a type contained in the assembly that I need to get a reference to:
var assembly = typeof(MyNamespace.SubNamespace.Type).Assembly;
精彩评论