我正在尝试将联系人保存到Windows Phone(8)联系人存储区。
我的代码没有做任何非标准的事情:
private async Task SaveContactToLocalStore(IMyLocalContact myLocalContact) {
var store = await ContactStore.CreateOrOpenAsync(ContactStoreSystemAccessMode.ReadWrite,
ContactStoreApplicationAccessMode.LimitedReadOnly);
var contact = new StoredContact(store);
var properties = await contact.GetPropertiesAsync();
if (!string.IsNullOrWiteSpace(myLocalContact.Nickname) {
properties.Add(KnownContactProperties.DisplayName, myLocalContact.Nickname);
}
/* Several such addition operations are executed, all identical, except for the values */
await contact.SaveAsync();
}
在标有async
的函数中的某个地方,我用以下方法调用我的保存函数:
await SaveContactToLocalStore(myLocalCOntact);
我在contact.SaveAsync()
上收到以下错误:System.InvalidCastException
完整错误文字:
System.InvalidCastException: Specified cast is not valid.
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
我不确定在哪里开始调查。 MSDN中的示例工作正常。