C# 使用EWS托管API 2.0为现有约会绑定自定义扩展属性
我想使用自定义扩展属性在数据库中进行唯一的预约。我使用FindAppoints()查找所有约会: 然后我使用foreach循环遍历所有约会:C# 使用EWS托管API 2.0为现有约会绑定自定义扩展属性,c#,exchange-server,exchangewebservices,ews-managed-api,C#,Exchange Server,Exchangewebservices,Ews Managed Api,我想使用自定义扩展属性在数据库中进行唯一的预约。我使用FindAppoints()查找所有约会: 然后我使用foreach循环遍历所有约会: foreach (var appointment in appointments) 对于没有扩展属性的所有约会: if (appointment.ExtendedProperties.Count <= 0) 但它不起作用,因为我搜索会议并尝试输出扩展属性和它的值,但我没有得到结果,它没有绑定。我的问题是,我做错了什么?您还可以为现有预约提供哪些其
foreach (var appointment in appointments)
对于没有扩展属性的所有约会:
if (appointment.ExtendedProperties.Count <= 0)
但它不起作用,因为我搜索会议并尝试输出扩展属性和它的值,但我没有得到结果,它没有绑定。我的问题是,我做错了什么?您还可以为现有预约提供哪些其他解决方案?顺便说一句,我正在使用MS Exchange server 2010_SP2。请参阅我在这篇文章中的答案: 我认为你的问题与此相当相似。“FindItems”方法不加载任何自定义属性。这就是原因
if (appointment.ExtendedProperties.Count <= 0)
最后,您的代码应该如下所示:
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
}
}
请参阅我在本帖中的答案: 我认为你的问题与此相当相似。“FindItems”方法不加载任何自定义属性。这就是原因
if (appointment.ExtendedProperties.Count <= 0)
最后,您的代码应该如下所示:
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
}
}
非常感谢你!你在我的应用程序中解决了我最大的问题:)非常感谢!你解决了我应用程序中最大的问题:)