1

EWSの連絡先プロパティを空の文字列で更新しようとしましたが、失敗します。理由はわかりません。

 // works fine
 contact.Company = "SomeCompany";
 contact.Update(ConflictResolutionMode.AlwaysOverwrite);

 // failed in Update with a service response exception
 contact.Company = "";
 contact.Update(ConflictResolutionMode.AlwaysOverwrite);

nullとstring.Emptyを試しますが、同じ効果があります。私は何が間違っているのですか?

4

2 に答える 2

4

タイプにCompanyプロパティがあると確信していますか?Contact次の方法で問題なく更新できるプロパティのみが表示CompanyNameされます(少なくとも試してみると):

var service = GetService();
var view = new ItemView(1);
var searchFilter = new SearchFilter.IsEqualTo(ContactSchema.EmailAddress1, "test@domain.dk");
var contacts = service.FindItems(WellKnownFolderName.Contacts, searchFilter, view);

var contact = contacts.ElementAt(0) as Contact;

// Works fine.
contact.CompanyName = "SomeCompany";
contact.Update(ConflictResolutionMode.AlwaysOverwrite);

// Works fine as well.
contact.CompanyName = "";
contact.Update(ConflictResolutionMode.AlwaysOverwrite);
于 2012-02-28T12:13:19.207 に答える
0

まず、一度に複数のプロパティを更新できます。

次に、既存の値が新しい値と同じかどうかを確認できます (同じ場合は設定しないでください)。また、空の文字列の場合は値を null に設定することをお勧めします。

3 番目に、連絡先を見つけてアイテム ID を取得し、新しい連絡先をそのアイテム ID にバインドします。

ItemId itemId = contact.Id;
Contact updateContact = Contact.Bind(service, itemId);

これが役立つ場合があります。知るか。アイテムを更新するときに API を使用するのは非常に困難です。

EWS を使用した連絡先の更新に関する多くの情報を掲載したこのリンクを確認してください: EWS で連絡先を更新する

于 2012-11-22T11:53:24.333 に答える