我正在使用EWS Managed API 1.2和Exchange Server 2007开发C#.NET Framework 4.5 Windows窗体应用程序,它执行某种邮件同步。
现在我正在处理扩展属性,我想清楚一些事情:
Q1。 DefaultExtendedPropertySet
课程的目的是什么? MSDN says“定义扩展属性的默认集。”
Q2。我在构建DefaultExtendedPropertySet.PublicStrings
时无法决定是否应该使用自定义GUID或ExtendedPropertyDefinition
:
var MyXProp = new ExtendedPropertyDefinition(
DefaultExtendedPropertySet.PublicStrings,
"MyXProp", MapiPropertyType.String);
OR
Guid MyPropertySetId = new Guid("{C11FF724-AA03-4555-9952-FA248A11C3E}");
var extendedPropertyDefinition = new ExtendedPropertyDefinition(
MyPropertySetId, "MyXProp", MapiPropertyType.String);
答案 0 :(得分:5)
我自己的问题的直接答案如下。但阅读后我意识到还有很多相关的事情要知道。所以这些事情就是答案。
Q1。
DefaultExtendedPropertySet
用于分组目的。 Microsoft预定义了一些名称空间以鼓励对命名属性进行逻辑分组,并将其包含在此枚举中。<强> Q2。强>
DefaultExtendedPropertySet.PublicStrings
也足够了。要点是避免与其他供应商创建的命名属性发生冲突。如果要将应用程序与其他一些应用程序集成,PublicStrings
还可以提供更好的可发现性(在迭代期间可能需要非常仔细地指定GUID)。MAPI属性
0x8000
下的属性。该范围细分为:
0x8000
以上的属性。它们允许供应商/开发人员通过添加自己的属性来扩展标准MAPI属性集。有两种命名属性:
rfc822 x-headers到MAPI属性转换
有一些微妙的历史细节,例如
请在以下链接中阅读更多详情:
答案 1 :(得分:2)
Q1)DefaultExtendedPropertySet
枚举定义了Exchange拥有的默认扩展属性集,例如DefaultExtendedPropertySet.Task
。它并不适用于您自己的自定义扩展属性集。
Q2)MSDN非常明确地将Guid用于任何自定义扩展属性集,所以我的确会这样做。在该属性集中,您当然可以使用您的财产的任何名称。