Exchange - Microsoft.Exchange.WebServices.Data.Recurrence.YearlyPattern中缺少Interval

时间:2018-03-06 13:50:14

标签: c# exchange-server

当您通过Outlook等客户创建约会时,您可以设置每年定期约会的时间间隔。但是这个成员不包含在我们必须通过Web服务处理的类中:

http://msdn.microsoft.com/en-us/library/microsoft.exchange.webservices.data.recurrence.yearlypattern_members(v=exchg.80).aspx

这是因为YearlyPattern不是IntervalPattern的子类,因为每个其他的patterntype都是:

http://msdn.microsoft.com/en-us/library/microsoft.exchange.webservices.data.recurrence(v=exchg.80).aspx

有人知道,原因是什么?有没有机会获得间隔属性?是否有可能使用的工作方法?

1 个答案:

答案 0 :(得分:0)

这是API中的一个明显缺陷,出于某种原因,出于MS的无限智慧,他们决定排除该键值。

现在,我没有完整的代码示例,但确实有所有难题。您将需要从另一个属性中提取值。

首先,您需要获取PidLidAppointmentRecur MAPI属性

这是扩展属性定义,将其添加到您要求的带有约会的属性集:

static ExtendedPropertyDefinition AppointmentRecur = new ExtendedPropertyDefinition(
    DefaultExtendedPropertySet.Appointment,
    0x8216,
    MapiPropertyType.Binary
);

Extract the byte array:

appointment.TryGetProperty(AppointmentRecur, out byte[] appointment_recurence);

然后解析它,请参阅本指南以开始使用:

您正在寻找3个值:

  • RecurFrequency
  • PatternType
  • 期间

RecurFrequency&PatternType是枚举,我没有资料来源。周期是间隔号。

我希望找到类似的东西

  • RecurFrequency = 0x200D(每年)
  • PatternType = 0x0002(月)

因此,一旦有了这些值,就需要根据PatternType和Period计算年度间隔。

我将获得RecurFrequency以进行验证。

好吧,我希望它现在很明显,但是如果您想解析整个结构,则可以用它替换EWS Recurrence属性。

另一个好的资源: