C# 遍历PropertyAccesor

C# 遍历PropertyAccesor,c#,office-interop,outlook-addin,office-addins,C#,Office Interop,Outlook Addin,Office Addins,我们已经编写了一个Outlook加载项,它通过PropertyAccessor在邮件项目上设置了两个自定义属性。像这样: mail.PropertyAccessor.SetProperty(name, value); 此邮件(eml文件)被发送到另一个程序,该程序需要读取属性并根据这些属性采取操作。问题是我们不知道要设置哪些属性。我们如何在PropertyAccessor中迭代自定义属性 与此同时,我们正在使用UserProperties来迭代属性,但UserProperties有一个缺点,即

我们已经编写了一个Outlook加载项,它通过PropertyAccessor在邮件项目上设置了两个自定义属性。像这样:

mail.PropertyAccessor.SetProperty(name, value);
此邮件(eml文件)被发送到另一个程序,该程序需要读取属性并根据这些属性采取操作。问题是我们不知道要设置哪些属性。我们如何在PropertyAccessor中迭代自定义属性


与此同时,我们正在使用UserProperties来迭代属性,但UserProperties有一个缺点,即在打印电子邮件时,它们会打印在邮件消息上方。

我认为这没有多大意义-您不可能拥有数千个属性,是吗?
如果某个属性可能存在,也可能不存在,只需检查它是否存在。
命名属性的另一个问题是,它是一个有限的资源——一个存储中最多可以有64k个不同的命名属性。最好使用较少的命名属性,但使它们包含多个值。
能否举例说明为什么需要大量命名属性

对于正在打印的用户属性,在MAPI级别,可以在“用户属性”blob中设置一个特殊标志,以打开或关闭“可打印”。如果使用赎回是一个选项,则对象将公开可打印属性