C# 如何在Windows Phone联系人列表中获取联系人的ID?

C# 如何在Windows Phone联系人列表中获取联系人的ID?,c#,windows-phone-7,contact,rawcontactid,C#,Windows Phone 7,Contact,Rawcontactid,我想获取联系人列表应用程序的ID。。。目前我使用的类名为PhoneNumberChooserTask与Chooser类类似,但我只得到Number、Name和FullName。等但是如何获取该联系人的ID呢?您没有什么可以使用该ID的,因此作为开发人员您根本无法使用该ID。(这意味着这是不可能的)是的,这是可能的 Contact c = new Contact(); var Id = c.GetHashCode(); //gives the Id property value. GetHash

我想获取联系人列表应用程序的ID。。。目前我使用的类名为
PhoneNumberChooserTask
与Chooser类类似,但我只得到Number、Name和FullName。等但是如何获取该联系人的ID呢?

您没有什么可以使用该ID的,因此作为开发人员您根本无法使用该ID。(这意味着这是不可能的)

是的,这是可能的

Contact c = new Contact();
var Id = c.GetHashCode(); //gives the Id property value.
GetHashCode返回联系人的私有属性ID。我已经证实,在运行WindowsPhone8.1的3台设备(Lumia620、Lumia1320、Lumia925)中,它似乎可以工作。我更改了联系人的详细信息,但ID保持不变


对于Windows Phone 8.1 RT,您只需使用。不再需要GetHashCode()。

不确定您指的是什么。你能展示你的代码吗?Id属性实际上存在,但它是内部的,没有办法通过反射获得它的值(你会得到PropertyAccessException)。这太令人伤心了,我无法理解为什么Id属性是内部的而不是公共的。你说我与Id无关是什么意思?!我需要它来将此人与另一个实体关联。否-GetHashCode()不保证在每次执行之间(或在.NET framework版本之间!)返回相同的值-不要使用它来唯一标识联系人,因为它不保证工作!此外,如果您更改联系人的任何属性,哈希代码也会更改-如果您将其用作UID,则数据库中通过此UID引用特定联系人的每条记录在更改时都会出错,并且数据将成为孤立数据。嗨,Steve,我不确定您是基于什么原因这样说的。但是如果您取消使用Contact类,您可以看到GetHashCode方法将返回ContactId。只有当windows pohne由于用户使用google contact/windows live contact所做的某些事情而重新生成其电话数据库时,您才可能在某种意义上是正确的。