唯一标识Windows Phone通讯簿中的联系人

考虑以下情况:

  • 我将数据从地址簿中的随机Contact X保存到Iso Storage
  • 我离开了应用程序并修改了地址簿中的Contact X.
  • 回到应用程序,我如何识别来自Iso Storage的Contact X与我刚刚在地址簿中修改的Contact X相同?

我的目的是定期将用户的地址簿数据复制到Iso Storage中,然后将其与服务器同步。 我只做READ操作,如果获得授权,则完全允许。

问题是Contact ID是私有字段,我不能使用Contact Stores(具有公共ID)。

此外,WP联系人没有内容规则,这意味着您可以联系没有姓名,10个电话号码,没有电话号码等,因此将一段内容作为唯一标识符将无效,因为不保证一致性。

哈希代码也不起作用,因为修改后的对象会导致修改后的代码。

任何帮助深表感谢。

找到答案 – 感谢此处发布的相关问题。

我反编译了Microsoft.Phone DLL,似乎Contact.GetHashCode实际上返回了Contact.ID值。 已确认行为在各种设备和仿真器上按预期工作。

所有那些一直坚持不允许开发人员访问联系人ID等信息的人 – 请记住,市场上可以拒绝用户联系访问权限。 当我正在开发时,我假设用户完全理解他自己进入了什么,因为我花时间写了一篇有意义的描述,MS做了很好的验收测试。 如果用户突然发现应用程序“打破了他的隐私”,那不是我作为开发人员的问题。

最后一段是因为我看到了一些事实,例如“开发人员不需要这些function,他们打破了隐私”。