0

每个 Windows Phone 开发人员都可能熟悉 NavigationService 以及使用 URI 导航到指定内容的方式,即:

 NavigationService.Navigate(new Uri("/Views/DetailsPage.xaml?selectedItem=" + selectedItem.ID, UriKind.Relative));

但是有没有解释为什么会这样?

使用时的安全问题有:

  • 如果你重命名/移动/重构一个类,URI 将不再起作用。与属性相同。
  • 如果指定的页面或属性存在,您绝对没有验证
  • 即使这是页面导航的标准机制,为什么 IDE 至少不验证相对 URI 以检查类和属性是否合适?
  • 为什么好像没人关心?

与例如 Android 和 iOS 相比,两者都提供了至少更多的类型安全性,还是我在这里遗漏了什么?

4

1 回答 1

0

解释很简单:Silverlight。

Silverlight 实现基于 URI 的系统的原因很明显:该框架被设计为在 Web 浏览器内部执行,因此它使深层链接更易于实现(即:打开 Silverlight 应用程序的特定页面,具体取决于Web 浏览器中请求的 URI)。

Windows Phone 的运行时基于 Silverlight,因此仍然保留了相同的系统。请注意,这不是一件坏事。当然,如果您停在导航服务上,看起来我们正在失去类型安全性而没有任何好处。但是,如果您认为您的应用程序可以从辅助磁贴启动,或者自 WP8 以来从自定义 URI 方案启动,这一切突然变得有意义。

于 2013-04-10T10:03:46.390 回答