Используя EWS управляемый API v1.1, я могу успешно сохранить / установить для контакта "Title" или honifific (если вы предпочитаете) непустое значение, но я не могу понять, как удалить или установить его обратнов пустую строку / null.
Я пытался установить пустое значение и Я пытался удалить расширенное свойство.Вот соответствующий код.
var titleDef = new ExtendedPropertyDefinition(0x3A45, MapiPropertyType.String);
// works when set to a non-empty string value
ewsContact.SetExtendedProperty(titleDef, "Mr.");
// throws null argument exception when set to String.Empty or null
ewsContact.SetExtendedProperty(propDefinition, String.Empty);
// isRemoved is equal to false and the value doesn't change
var isRemoved = ewsContact.RemoveExtendedProperty(titleDef);
Я также пытался использовать другую перегрузку для ExtendedPropertyDefinition, как упомянуто в этот очень похожий вопрос , но это не изменило мой конечный результатдля удаления собственности.Я не уверен, что понимаю разницу в двух сигнатурах конструктора.
var titleDef = new ExtendedPropertyDefinition(new Guid("{00062004-0000-0000-C000-000000000046}"), 0x3A45, MapiPropertyType.String);
// isRemoved is equal to false and the value doesn't change
var isRemoved = ewsContact.RemoveExtendedProperty(titleDef);
Обход грубой силы
Полагаю, я мог бы взять полнуюскопируйте контакт (без заголовка) и удалите оригинал, но это кажется слишком сложным и, вероятно, приведет к другим ошибкам.