【问题标题】:Will using an API without the capabilities cause my app to terminate or just throw an exception?使用没有这些功能的 API 会导致我的应用程序终止还是抛出异常?
【发布时间】:2013-03-21 20:23:16
【问题描述】:

我正在编写一段代码,试图从 Windows Phone 8 上的用户设备获取尽可能多的信息。我在认证指南中注意到了这句话

如果您的应用尝试访问它所使用的 API,它可能会意外关闭 不具备使用的安全能力。了解更多信息 有关如何使用安全功能,请参阅如何确定应用程序 能力。

那么,这到底是什么意思?例如这段代码:

try
{
  SomeInfo=SomeFunctionThatRequiresACapability();
}
catch
{
 //oh well, I guess we can't get that piece of info. ignore it
}

这可能会证明吗?还是我需要先检查我们是否有能力?

【问题讨论】:

  • 测试代码时不可能错过这一点。有时它不会随机不扔,你没有得到你没有要求的能力。所以不要添加那个try/catch,它是没用的。勾选功能或删除代码。
  • @HansPassant 这是一个库,其他人会将其放入自己的手机应用程序中。我们真的很想避免整个“如果你有这个能力就使用这个版本”类型的东西

标签: .net exception windows-phone-8 windows-phone


【解决方案1】:

如果您不添加这些功能,它将在运行时引发异常。但是,它不会进行认证,因为 XapValidation 工具会检查您的编译代码,而不是 xml 文件中的功能列表。

【讨论】:

  • Visual Studio(商店测试工具包)附带的 XapValidation 工具检查编译的代码?我从来没有失败过,所以我认为它没有多大作用
  • 根据我的经验,Web 浏览器功能是个例外。 XapValidation 可能会错过它,并且会在没有该功能的情况下推动您的应用程序通过 - 导致在运行时引发异常。我通过在我的 App 类上创建一个 WebBrowser 字段来解决它。
  • 这不是真的。例如,根据我的经验,将地理定位服务与无权使用它的应用程序一起使用可能只会导致应用程序无限期挂起。
  • 不,我指的是内部 XapValidation 工具,我们提供该工具 ;-)
猜你喜欢
  • 2014-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-27
  • 1970-01-01
  • 1970-01-01
  • 2016-01-06
  • 1970-01-01
相关资源
最近更新 更多