繁体   English   中英

使用EWS托管API 2.0为现有约会绑定自定义扩展属性

[英]Bind custom extended property for existing appointment using EWS managed API 2.0

我想使用自定义扩展属性进行唯一约会以放入数据库中。 我使用FindAppointments()找到所有约会:

var appointments = _service.FindAppointments(WellKnownFolderName.Calendar, calendarView);

然后我使用foreach循环浏览所有约会:

foreach (var appointment in appointments)

对于所有没有扩展属性的约会:

if (appointment.ExtendedProperties.Count <= 0)

我绑定了一个自定义扩展属性,并使用我特别生成的唯一会议ID(meetingId)来设置其值:

var myPropertySetId = new Guid("{6C3A094F-C2AB-4D1B-BF3E-80D39BC79BD3}");
var extendedPropertyDefinition = new ExtendedPropertyDefinition(myPropertySetId, "RateTheMeetingId", MapiPropertyType.Integer);
var bindedAppointment = Appointment.Bind(_service, appointment.Id, new PropertySet(extendedPropertyDefinition));
bindedAppointment.SetExtendedProperty(extendedPropertyDefinition, meetingId);
bindedAppointment.Update(ConflictResolutionMode.AlwaysOverwrite);

但这是行不通的,因为比起我搜索会议并尝试输出扩展属性和tis值,我没有得到结果,它没有绑定。 我的问题是我做错了什么,您还可以提供什么其他解决方案来赋予EXISTING约会自定义扩展属性? 顺便说一句,即时通讯与MS Exchange服务器2010_SP2。

请参阅这篇文章的答案: Exchange Web服务托管API-通过扩展属性查找项目我认为您的问题与此非常相似。 “ FindItems”方法不会加载任何自定义属性。 那就是为什么

if (appointment.ExtendedProperties.Count <= 0)

即使约会已经具有您的自定义属性,也始终为true。 接下来,我建议您在DefaultExtendedPropertySet.PublicStrings中创建Extended属性,而不要创建自己的GUID。 我也尝试过自己的引导,但从未正确运行过。

像这样尝试:

ExtendedPropertyDefinition def = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.PublicStrings, "RateTheMeetingId", MapiPropertyType.Integer);

所以最终您的代码应如下所示:

var appointments = _service.FindAppointments(WellKnownFolderName.Calendar, calendarView);

ExtendedPropertyDefinition def = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.PublicStrings, "RateTheMeetingId", MapiPropertyType.Integer);

PropertySet propset = new PropertySet(PropertySet.IdOnly);
propset.Add(def);

foreach (var appointment in appointments)
{
    //appointment should already be binded, now load it
    appointment.Load(propset);
    object value = null;
    if (item.TryGetProperty(def, out value))
    {
        //Do something
    }
    else
    {
        //Add Property
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM