“查询”;“字段”;在Outlook RDOMail对象中

“查询”;“字段”;在Outlook RDOMail对象中,outlook,outlook-redemption,Outlook,Outlook Redemption,我有一段代码,它使用DASL查询来查询保存在RDOFolder中项的用户属性中的值,如下所示: rdoFolder.Items.Find(“\”http://schemas.microsoft.com/mapi/string/{00020329-0000-0000-C000-0000000000 46}/MyUserPropertyName/0x0000001F\“='queryValue'” 但是,现在我需要将保存在我的用户属性中的数据迁移到RDOMail项的字段属性中。我想知道是否有类似的

我有一段代码,它使用DASL查询来查询保存在RDOFolder中项的用户属性中的值,如下所示:
rdoFolder.Items.Find(“\”http://schemas.microsoft.com/mapi/string/{00020329-0000-0000-C000-0000000000 46}/MyUserPropertyName/0x0000001F\“='queryValue'”

但是,现在我需要将保存在我的用户属性中的数据迁移到RDOMail项的
字段
属性中。我想知道是否有类似的方法来查询此
字段
属性以提高性能。当有成千上万个项时,循环文件夹中的所有项进行值比较可能会非常慢.

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

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

我发现
RDOFolder.Items.Find
方法也会搜索通过
RDOMail.Fields
索引属性保存的值。就像Dmitry sa我在他的评论中没有提到

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

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'");

我发现
RDOFolder.Items.Find
方法也搜索通过
RDOMail.Fields
index属性保存的值。正如Dmitry在评论中所说的那样

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

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'");

我也遇到了类似的问题。您的意思是可以这样做:
rdoMail.Fields[“\”http://schemas.microsoft.com/mapi/string/{00020329-0000-0000-C000-0000000000 46}/MyUserPropertyName/0x0000001F\“='queryValue'”
?即使您可以这样做,代码是否仍然需要循环遍历特定文件夹中的所有项目,并对每个项目的所有字段执行上述查询?您可以执行
rdoMail.fields[“http://schemas.microsoft.com/mapi/string/{‌​00020329-0000-0000-C‌​000-0000000000 46}/My‌​UserPropertyName/0x0‌​000001F“]
。因为问题是关于特定的RDOMail对象的,是的,必须先打开它。如果要在一次调用中查询多个项目,RDOFolder.items.Find/FindNext/Restrict或ExecSQL就是一个好办法。我遇到了类似的问题。您的意思是可以这样做:
RDOMail.Fields[“\”http://schemas.microsoft.com/mapi/string/{00020329-0000-0000-C000-0000000000 46}/MyUserPropertyName/0x0000001F\“='queryValue'”
?即使您可以这样做,代码是否仍然需要循环遍历特定文件夹中的所有项目并对每个项目的所有字段执行上述查询?您可以执行
rdoMail.fields["http://schemas.microsoft.com/mapi/string/{‌​00020329-0000-0000-C‌​000-0000000000 46}/My‌​UserPropertyName/0x0‌​000001F“]
。由于问题涉及特定的RDOMail对象,因此必须先打开它。如果要在一次调用RDOFolder.items中查询多个项目,可以使用Find/FindNext/Restrict或ExecSQL。