在 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'");
我有一段代码使用 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'");