C# 使用EWS托管API创建或打开文件夹(如果存在)
我们正在将应用程序从MAPI迁移到EWS托管API。在MAPI中,我们可以创建新文件夹,或者使用单个MAPI方法IMAPIFolder::CreateFolder打开它(如果存在) 但我在EWS中找不到这样的功能。 我可以创建这样的文件夹(但如果目标文件夹中已经存在这样的文件夹,则会引发异常):C# 使用EWS托管API创建或打开文件夹(如果存在),c#,exchangewebservices,mapi,ews-managed-api,C#,Exchangewebservices,Mapi,Ews Managed Api,我们正在将应用程序从MAPI迁移到EWS托管API。在MAPI中,我们可以创建新文件夹,或者使用单个MAPI方法IMAPIFolder::CreateFolder打开它(如果存在) 但我在EWS中找不到这样的功能。 我可以创建这样的文件夹(但如果目标文件夹中已经存在这样的文件夹,则会引发异常): var newFolder=新文件夹(服务); newFolder.DisplayName=“name”; newFolder.Save(WellKnownFolderName.Root); 或者像这
var newFolder=新文件夹(服务);
newFolder.DisplayName=“name”;
newFolder.Save(WellKnownFolderName.Root);
或者像这样打开(找到)它
var filter=newsearchfilter.IsEqualTo(FolderSchema.DisplayName,“name”);
service.FindFolders(WellKnownFolderName.Root、过滤器、新FolderView(1));
即,我必须捕获此异常并使用ExchangeService.FindFolders方法查找文件夹。所有这些看起来都非常奇怪。最糟糕的是,在这种情况下,我们必须使用这两个EWS呼叫
是否可以使用单个EWS调用来获取“CreateOrOpen”功能?可能是手动生成EWS请求,或者?即使我面临类似的问题,对于我们需要进行EWS服务调用的每个操作,我也没有找到任何EWS服务方法来执行这两个(创建和打开)功能。因此,我将性能和多次呼叫结合在一起,如下所示
bool isExists = ews.FolderExists(EwsFolderId.Root, "name");
if (!isExists){
ews.CreateFolder(EwsFolderId.Root, "name");
}else{
//Find folder or get folder code goes here
}