gpt4 book ai didi

windows-phone-7 - 如何从 WP7 中的 Stream 或 byte[] 加载程序集?

转载 作者:行者123 更新时间:2023-12-04 11:14:36 25 4
gpt4 key购买 nike

我想在运行时使用 Stream 或 Byte 数组加载程序集。

在 .net 中,您可以使用 Assembly.Load(Byte[], Byte[]) http://msdn.microsoft.com/en-us/library/twt16z2x.aspx

在标准 Silverlight 中,您可以使用 AssemblyPart.Load() http://msdn.microsoft.com/en-us/library/cc190521%28v=VS.96%29.aspx

但在 Windows Phone 7 中,这两种方法都不可用。

最佳答案

好吧,正如您几乎发现的那样;你不能这样做。该设计不允许您加载 XAP 中未提供的程序集。这是一种安全设计,因为他们不希望您下载和运行未通过市场检查的任意代码。

这与 Apple 控制其 App Store 的方式相当。为什么这个功能不存在,为什么我怀疑它会被添加:

  • 市场。 Microsoft 要求所有应用程序通过黑盒检查。他们可能会寻找很多东西,例如性能、主要错误、有风险的 Material 和 UI 一致性。允许开发人员加载和运行任何程序集完全绕过市场。这在几个方面伤害了用户。首先是开发人员可能会倾向于将其用作在 Marketplace 之外分发更新的一种手段,或者偷偷加入 Microsoft 不允许在其 Marketplace 上使用的功能(如色情内容)。
  • 安全。能够加载程序集是一个强大的功能,它可以是好的也可以是坏的。如果开发人员错误地实现了它,就有可能利用它。其次,它可能是 Microsoft 的技术限制(或时间限制),因为它会如何影响应用程序的沙盒。或者更糟的是,一个看似无害的应用程序在通过检查后下载了一个不同的程序集,然后开始做一些邪恶的事情;像按键记录并将其上传到某个地方。既然它在市场上流通,微软就永远无法在它公开之前捕获它。

  • 正如 OJ 在评论中建议的那样,您可以做的是将程序集作为 XAP 的一部分,并使用 Assembly.Load 之一。允许您按名称加载它的重载。您可以动态加载程序集,它们只需要成为 XAP 的一部分。

    关于windows-phone-7 - 如何从 WP7 中的 Stream 或 byte[] 加载程序集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6326231/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com