我正试图从我们的C#windows桌面应用程序返回Outlook中的一个calendaritem。它不断返回此错误:Redemption.RDOItems断言失败:字段数== 1。
我在我创建的Outlook插件中使用类似的代码,它工作正常。主要区别在于filterprefix。在AddIn中我使用:
string filterprefix =“[”+ OurCustomProperty.OurItemId +“] ='”; var filter1 = filterprefix + parentItem.NeedlesId +“'”;
VAR =分裂folder.Items.Find(过滤器1);
但此代码不适用于您的桌面应用程序。
以下是桌面App中返回错误的代码:
appointment.Id包含我们在创建项目时设置的有效值。
string Filterprefix =“@ SQL =”+“http://schemas.microsoft.com/mapi/string/ {00020329-0000-0000-C000-000000000046} /OurCustomProperty.OurItemId/0x0000001f ='”;
RDOSession rdoSession = new RDOSession();
rdoSession.Logon(“”,“”,false,false,null,false);
RDOFolder folderRDO = rdoSession.GetDefaultFolder(rdoDefaultFolders.olFolderCalendar);
var filter1 = filter prefix + appointment.Id +“”“;
string ls_find = Filterprefix + appointment.Id +“'”;
VAR =分裂folderRDO.Items.Find(ls_find);
我已经尝试了几种语法变体,但似乎无法做到正确。我也尝试使用Sort然后限制,但也没有运气。
谢谢,里克
RDOItems.Find
采用SQL语句,请不要使用@SQL=
前缀 - 它是特定于OOM的。另外不要忘记双引用DASL属性名称:
"http://schemas.microsoft.com/mapi/string/{00020329-0000-0000-C000-000000000046}/OurCustomProperty.OurItemId/0x0000001f" = '<some value>'