我目前正在开发 EWS,以便将我们的公司应用程序与 Exchange 2010 进行一些集成。我正在使用 EWS 创建对 Exchange 2010 的预约,它工作正常;但最近我尝试在创建约会时添加一些自定义/扩展属性,下面是我添加扩展属性的代码。
Dim customField As New ExtendedPropertyDefinition(DefaultExtendedPropertySet.PublicStrings, "MyCustomField", MapiPropertyType.String)
appointment.SetExtendedProperty(customField, "CustomFieldValue")
上面的代码能够为约会创建自定义字段。
现在这是我的问题。当我在 Outlook 中打开我创建的约会并转到“开发人员 > 设计此表单”,然后转到“所有字段”选项卡时,我只看到我在“文件夹中的用户定义字段”中创建的自定义字段,但在“此项目中的用户定义字段”。
当用户在 Outlook 中打开约会时,我还制作了一个 Outlook 插件来响应我使用 EWS 创建的自定义字段,当我尝试查找自定义字段时,找不到自定义字段,因为自定义字段是在“文件夹中的用户定义字段”中创建的,但不是在“此项目中的用户定义字段”中创建的。
这是 Outlook 加载项中的代码,将在用户在 Outlook 中打开预约时执行。但是因为自定义字段不在“in this item”中,所以 .Find() 返回 Nothing。
Dim appt As Outlook.AppointmentItem
appt = TryCast(inspector.CurrentItem, Outlook.AppointmentItem)
If appt.UserProperties.Find("MyCustomField") Is Nothing Then
'Some action
Else
'Some action
End If
我想要实现的是使用 EWS 使用自定义字段(扩展属性)创建约会,然后在用户在 Outlook 中打开约会时读取 Outlook 加载项中的自定义字段(扩展属性)。
编辑:
我使用 EWS 分配给自定义字段的值显示在“文件夹中的用户定义字段”中。如何从 Outlook 加载项中检索值?也许我可以检索值并将自定义字段添加到项目和值?
谢谢。