使用EWS託管api v1.1,我可以成功地將聯繫人「標題」或敬語(如果您願意)保存/設置爲非空值,但我無法弄清楚如何刪除或將其設置回一個空字符串/ null。如何使用EWS託管API v1.1刪除聯繫人CompleteName.Title?
我試圖設置一個空值和我試圖刪除擴展屬性。這裏是相關的代碼。
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);
我也試過在this very similar question提到使用不同的過載的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);
蠻力變通
我想我可以把接觸(無標題)的完整副本,並刪除原始,但似乎比最高位,可能會導致其他錯誤。
你有沒有創建原始[聯繫方式](http://msdn.microsoft.com/en-us/library/gg274394%28v=exchg.80%29.aspx)項還是你只是修改現有? – SliverNinja
我正在使用'ItemId'的'Contact.Bind()'方法修改現有的聯繫人以檢索它。 –