Как я могу обновить элемент контакта в Exchange Web Api - PullRequest
1 голос
/ 28 февраля 2012

Я пытаюсь обновить свойство контакта в 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, но это тот же эффект.Что я делаю неправильно?

Ответы [ 2 ]

4 голосов
/ 28 февраля 2012

Вы уверены, что есть свойство 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);
0 голосов
/ 22 ноября 2012

Во-первых, вы можете обновлять более одного свойства одновременно.

Во-вторых, вы можете попробовать проверить, совпадает ли существующее значение с новым значением (если ононе устанавливайте это).Кроме того, лучше установить значение NULL, если это пустая строка.

В-третьих, найдите свой контакт, получите идентификатор элемента и затем свяжите новый контакт с этим идентификатором элемента.

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

Это может помочь.Кто знает.С API сложно работать при обновлении элемента.

Проверьте эту ссылку, где я поместил много информации об обновлении контакта с помощью EWS: Обновление контакта с EWS

...