2017-11-03 12 views
0

私はC#アプリケーションで連絡先オブジェクトを管理しようとしています。なぜHasPictureプロパティにアクセスできないのですか?

私はBindToItemsとの接触をロードしています:

ServiceResponseCollection<GetItemResponse> responses = service.BindToItems(itemIds, PropertySet.FirstClassProperties); 
foreach (var responseItem in responses) 
{ 
    contactDict.Add(responseItem.Item.Id, (Contact)responseItem.Item); 
} 

その後、私は接触が私の格納された値とそのプロパティを比較することにより、変更されているかどうかをチェックしてみてください。

ただし、HasPictureプロパティにアクセスしようとすると、例外がスローされます。

ServiceObjectPropertyException: This property was requested, but it wasn't returned by the server. 

デバッガをチェックインすると、この例外はMicrosoft.Exchange.WebServices.Data.Contactの他のプロパティに対してもスローされます。例としては、

  • 誕生日
  • ContactSource
  • IconIndex
  • NormalizedBody
  • TextBody
  • PostalAddressIndex
  • WeddingAnniversary

私はそれらのpにアクセスすることができないのはなぜロパティー? FirstClassPropertiesには含まれていませんか?しかし、this articleは、HasImageがContactオブジェクトのFirstClassPropertyであると言います。

+0

アカウントに画像があるかどうか確認しましたか?アカウントに画像がない場合は、「問題」が予想される可能性があります。 – BastianW

+0

私が "HasPicture"プロパティを呼び出す全理由は、アカウントに画像があるかどうかを確認することです。私はそれがそれを行う正しい方法ではないことを知らなかった。 –

答えて

2

BastianWのコメントに続いて、Contact.TryGetPropertyメソッドを使用してアカウントに画像があるかどうかを確認できます。

bool HasPicture; 
exchangeContact.TryGetProperty(ContactSchema.HasPicture, out HasPicture); 
+0

単純にHasPictureを呼び出すだけでアカウントに画像があるかどうかを確認することはできません。あなたのアプローチは機能し、それを行うための意図された方法のようです。 –

関連する問題