Silverlight 4中是否真的支持AppDomain.GetAssemblies()?

时间:2012-05-14 10:59:06

标签: c# silverlight silverlight-4.0

在MSDN中,据说AppDomain.GetAssemblies() is supported in Silverlight 4

在我的项目中,当我定位Silverlight的第4版(我已经三重检查)时,我无法访问GetAssemblies()上的AppDomain方法,如下面的屏幕截图所示:

Cannot find GetAssemblies() method on AppDomain class in Silverlight 4

如果我尝试,它将无法编译。我可以使用以下代码解决此问题:

dynamic domain = AppDomain.CurrentDomain;
var assemblies = domain.GetAssemblies();

它编译并且似乎工作正常,但仅限于我的测试中的Silverlight客户端5.X和Silverlight 4.0.60351及更高版本。它不适用于客户端的以下版本。 有问题的项目是我的Silverlight应用程序的入口点。

谷歌搜索这个主题主要是说它得到了支持......

所以我的问题是:

  • a)是否真的受到支持,如果是这样,我怎样才能使用它来确保只要我的客户使用任何的4.X,它就会一直有效版本
  • b)如果没有上述解决方法,如何在IDE中使用AppDomain.CurrentDomain.GetAssemblies()?有没有我错过的东西?

如果它有用,我在桌面上安装了以下内容:

  • Silverlight客户端5.1.10411
  • Silverlight SDK 3,4和5
  • Silverlight 4 Toolkit 2010年4月
  • 适用于VS2010的Silverlight 4工具

我没有尝试卸载/重新安装任何东西(还),以避免在这项繁琐的任务中失去一整天......

-

编辑:对于SL4,mscorlib.dll中的GetAssemblies()类似乎没有AppDomain方法。所以我想MSDN文档是不正确的,运行时SL4客户端由于某种原因在某些时候被修补(与SL5编译的应用程序的兼容性?)...

1 个答案:

答案 0 :(得分:2)

我还在MSDN中弄明白这些(请参阅我的评论on MSDN page)行为或错误的文档,并尝试了许多不同的方法来在Siverlight 4中调用GetAssemblies方法。我的解决方案是安装Silverlight 5和将我的silverlight项目更改为使用Silverlight 5。

我的建议是稍后通过对Silverlight运行时的补丁或silverlight更新添加方法GetAssemblies。