3

在 MSDN 中,据说AppDomain.GetAssemblies()Silverlight 4 支持

在我的项目中,当我针对 Silverlight 的第 4 版(我三次检查)时,我无法访问GetAssemblies()on 方法,AppDomain如下面的屏幕截图所示:

在 Silverlight 4 中的 AppDomain 类上找不到 GetAssemblies() 方法

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

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

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

谷歌搜索这个主题主要是说它是支持的......

所以我的问题是:

  • a)它是否真的受支持?如果支持,我如何使用它来确保只要我的客户使用任何4.X 版本,它就始终可以正常工作?
  • b)AppDomain.CurrentDomain.GetAssemblies()如果没有上述解决方法,我如何在 IDE 中使用?有什么我错过的吗?

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

  • Silverlight 客户端 5.1.10411
  • Silverlight SDK 3、4 和 5
  • Silverlight 4 工具包 2010 年 4 月
  • Silverlight 4 VS2010 工具

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

--

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

4

1 回答 1

2

我还偶然发现了这些(请参阅我对 MSDN 页面的评论)行为或 MSDN 中的错误文档,并尝试了许多不同的方法来获取 Siverlight 4 中的方法调用 GetAssemblies。我的解决方案是安装 Silverlight 5 并将我的 silverlight 项目更改为使用 Silverlight 5。

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

于 2012-05-14T12:03:49.330 回答