Create appointment with custom properties in EWS
我尝试向创建的date添加自定义属性,如下所示:
1 2 3 4 5 6 7 8 9 10 | var newEvent = new Appointment(service) { Start = start, End = end, Subject = subject, ReminderMinutesBeforeStart = 15 }; var extendendProperty = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.Address,"organizer", MapiPropertyType.String); newEvent.SetExtendedProperty(extendendProperty, organizer); |
但问题是当我尝试从服务器获取此date时,属性 ExtendedProperty 为空。
此外,我创建了新date并将"房间"添加为必需的与会者,当我尝试获取此date时,我不是从我的日历中获取它,而是从房间日历中获取它。
所以,我想在我的date中添加扩展属性并邀请"房间"。接下来得到房间的所有date,在这里我想阅读这个属性。甚至有可能吗?
我阅读了这个主题:EWS 创建date以交换额外的自定义属性,据我了解,当我想阅读此属性时,我必须有权访问
1 2 3 |
编辑
感谢 Glen Scales!
它几乎可以按我的意愿工作,但有一件事。如果我下载自己的date,我可以阅读此附加属性,但在该代码中,我从房间日历下载date。
我认为在创建新date并添加房间作为所需服务员时,它会创建他自己的date并且不会复制此附加属性。
那么,当我将这个房产添加到我的房间时,有什么方法可以从房间预约中获得这个额外的房产?
您需要首先创建一个属性集,将要加载的扩展属性添加到该属性集。然后告诉 EWS 您希望在执行 FindAppointment 方法时返回该属性,请参阅 https://msdn.microsoft.com/en-us/library/office/dd633697(v=exchg.80).aspx 例如在您的示例中
1 2 3 4 5 6 7 8 | PropertySet YourProperyset = new PropertySet(BasePropertySet.FirstClassProperties); var extendendProperty = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.Address,"organizer",MapiPropertyType.String); YourProperyset.Add(extendendProperty); var folderId = new FolderId(WellKnownFolderName.Calendar, new Mailbox(userName)); var calendar = CalendarFolder.Bind(service, folderId); var calendarView = new CalendarView(start, stop); calendarView.PropertySet = YourProperyset; return calendar.FindAppointments(calendarView).ToList(); |