Silverlight Assembly.Load() only works with the fu

2019-07-03 06:16发布

Apparently the implementation of Assembly.Load() in Silverlight needs a full/strong 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?

2条回答
神经病院院长
2楼-- · 2019-07-03 06:25

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;
查看更多
别忘想泡老子
3楼-- · 2019-07-03 06:40

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.

查看更多
登录 后发表回答