在 Outlook RDOMail 对象中查询 "field"

Querying "field" in Outlook RDOMail object

我有一段代码使用 DASL 查询来查询 RDOFolder 中项目的用户 属性 中保存的值,如下所示: rdoFolder.Items.Find("\"http://schemas.microsoft.com/mapi/string/{00020329-0000-0000-C000-000000000046}/MyUserPropertyName/0x0000001F\"='queryValue'" 但是,现在我需要将保存在我的用户属性中的数据迁移到 RDOMail 项目的 Field 属性 中。我想知道是否有类似的方法来查询此 Field 属性 以获得快速性能。当有数万个项目时,循环遍历文件夹中的所有项目以进行值比较可能会非常慢。

您可以将相同的 DASL 名称传递给 RDOMail.Fields 索引 属性。

我发现 RDOFolder.Items.Find 方法还搜索通过 RDOMail.Fields 索引 属性 保存的值。就像德米特里在他的评论中所说的那样。

例如,如果我这样设置值:

myRdoMail.Fields["http://schemas.microsoft.com/mapi/string/{8d736f90-8f45-4591-81aa-c85a98f1261b}/MyUserProperty"] = "MyValue";

然后我将能够通过执行以下操作找到该项目:

var result = myRdoFolder.Items.Find("\"http://schemas.microsoft.com/mapi/string/{8d736f90-8f45-4591-81aa-c85a98f1261b}/MyUserProperty\"='MyValue'");