gpt4 book ai didi

exchangewebservices - 如何使用 EWS 托管 api v1.1 删除联系人 CompleteName.Title?

转载 作者:行者123 更新时间:2023-12-05 01:34:42 27 4
gpt4 key购买 nike

使用 EWS 托管 api v1.1,我可以成功地将联系人“标题”或敬语(如果您愿意)保存/设置为非空值,但我不知道如何将其删除或设置回空字符串/空。

我试图设置一个空值 我试图删除扩展属性。这是相关代码。

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);

蛮力解决方法

我想我可以获取联系人的完整副本(没有标题)并删除原件,但这似乎有点过头了,可能会导致其他错误。

最佳答案

EWS 让您分配 Extended Properties无需先绑定(bind)它们。但是,要删除扩展属性 - 您需要将其包含在初始绑定(bind)调用中 PropertySet .以下对我有用...

 var titleDef = new ExtendedPropertyDefinition(0x3A45, MapiPropertyType.String);
Contact contact = Contact.Bind(service, id, new PropertySet(titleDef));
contact.RemoveExtendedProperty(titleDef);
contact.Update(ConflictResolutionMode.AutoResolve);

也很奇怪,可以检索到 Title作为一等属性,但您不能分配它(因为它是一个复杂类型)。他们本可以让我们更容易做到这一点。
var title = contact.CompleteName.Title;  

关于exchangewebservices - 如何使用 EWS 托管 api v1.1 删除联系人 CompleteName.Title?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8452235/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com