我试图用C应用程序管理联系人对象。
我正在用BindToItems加载联系人:
ServiceResponseCollection<GetItemResponse> responses = service.BindToItems(itemIds, PropertySet.FirstClassProperties);
foreach (var responseItem in responses)
{
contactDict.Add(responseItem.Item.Id, (Contact)responseItem.Item);
}
然后,我尝试通过将其属性与存储的值进行比较来检查联系人是否已更改。
return exchangeContact.Surname != user.Surname
|| exchangeContact.CompanyName != user.Company
...
|| (!exchangeContact.HasPicture && user.ThumbnailPhoto != null)
但是,当我尝试访问HasPicture属性时,抛出了一个异常。
ServiceObjectPropertyException: This property was requested, but it wasn't returned by the server.
签入调试器时,也会为的其他属性引发此异常
Microsoft.Exchange.WebServices.Data.Contact
. 例如:
为什么我不能访问这些属性?它们不包括在FirstClassProperties中吗?但是
this article
表示HasImage是Contact对象的FirstClassProperty。