通过UserProperties搜索outlook项目

时间:2016-03-21 14:41:39

标签: c# outlook-addin

我必须将我的数据库pkid保存到outlook。我用了UserProperties["TaskId"]。我试图通过此ID找到该项目,以下代码无法正常工作

tasksFolder.Items.Find(string.Format("[TaskId] = '{0}'", id))

有没有找到我的项目而不是在我的所有列表上循环! 有什么更好的方法可以在outlook上保存Database id,EntryID是只读的。

1 个答案:

答案 0 :(得分:1)

您可以利用在后台运行的AdvancedSearch

准确地说,您可以使用Application.AdvancedSearch启动异步搜索任务(请参阅documentation here

string scope参数实际上是将执行搜索的Outlook文件夹。我想您可能会使用默认任务文件夹(请参阅olDefaultFolder

在您的情况下,您必须使用CustomField创建查询。这是语法(未经测试)。这个奇怪的0x0000001f实际上是CustomPropertiessee

的内部ID
"http://schemas.microsoft.com/mapi/string/{00020329-0000-0000-C000-000000000046}/TaskId/0x0000001f = 'yourid'"

请注意,使用AdvancedSearch,您可以在后台执行搜索任务,而不会冻结UI线程。我建议您使用ID来识别您的搜索,这样您就不会陷入并发搜索或取消。