【发布时间】:2014-07-02 22:07:03
【问题描述】:
我目前正在寻找一种使用 C# 将一些额外属性保存到交换约会的方法。目前我可以使用以下属性进行保存:
Appointment calendar = new Appointment(p_service);
calendar.Subject = calendarS5Subject;
calendar.Body = calendarS5Body;
calendar.Start = calendarS5StartDateTime;
calendar.End = calendarS5EndDateTime;
calendar.IsReminderSet = false;
calendar.Location = calendarS5Location;
calendar.Body.BodyType = BodyType.Text;
calendar.Save();
但是我希望能够存储我自己的自定义属性,例如 calendar.EventID 和 calendar.Blah 。是否可以根据约会保存这些属性,然后以后可以访问它们?如果可以将其全部存储为指定窗口内的用户控件表单,那就更好了。我知道您可以通过使用 AppointmentItem 类型的 Outlook 插件来做到这一点。但是,我还没有找到一种方法来使用 Appointment 类型进行交换。
TIA。
我现在可以使用以下方法保存额外的属性:
Guid EventIDSetGUID = new Guid("{C11FF724-AA03-4555-9952-8FA248A11C3E}");
ExtendedPropertyDefinition extendedPropertyEventID = new ExtendedPropertyDefinition(EventIDSetGUID, "EventID", MapiPropertyType.String);
calendar.SetExtendedProperty(extendedPropertyEventID, calendarS5EventID);
但是,我现在很难稍后再读回该属性。这项工作在我保存了额外的属性之后,但如果我重新启动应用程序然后尝试读取额外的属性eventIDProp 总是返回null。我的阅读代码:
Guid EventIDReadGUID = new Guid("{C11FF724-AA03-4555-9952-8FA248A11C3E}");
ExtendedPropertyDefinition extendedPropertyEventIDRead = new ExtendedPropertyDefinition(EventIDReadGUID, "EventID", MapiPropertyType.String);
object eventIDProp;
if (calendar.TryGetProperty(extendedPropertyEventIDRead, out eventIDProp) && eventIDProp != calendarS5EventID)
{
}
【问题讨论】:
标签: c# visual-studio-2012 exchange-server exchangewebservices