C# 在EWS中的联系人文件夹(而不是WellKnownFolderName)中创建联系人组。联系人

C# 在EWS中的联系人文件夹(而不是WellKnownFolderName)中创建联系人组。联系人,c#,exchangewebservices,C#,Exchangewebservices,我正在创建一个作业,以便将联系人从web系统导入exchange。我正在将联系人导入他们自己的文件夹。我希望能够将它们添加到该文件夹中的组中。我已经创建了组并向其中添加了联系人,但无法确定如何使组显示在默认WellKnownFolderName.contacts以外的任何文件夹中。这是我创建联系人组的代码,看起来parentid是一个只读属性,可以这样做吗 public static ContactGroup CreateContactGroup(string distributionLis

我正在创建一个作业,以便将联系人从web系统导入exchange。我正在将联系人导入他们自己的文件夹。我希望能够将它们添加到该文件夹中的组中。我已经创建了组并向其中添加了联系人,但无法确定如何使组显示在默认WellKnownFolderName.contacts以外的任何文件夹中。这是我创建联系人组的代码,看起来parentid是一个只读属性,可以这样做吗

  public static ContactGroup CreateContactGroup(string distributionList, ExchangeService service, FolderId folder)
    {
        try
        {
            ContactGroup cg = new ContactGroup(service);
            cg.DisplayName = distributionList;
            cg.Save();
            return cg;
        }
        catch (Exception e)
        {
            return null;
        }
    }

要在另一个contacts文件夹中创建联系人组,您需要获取该文件夹的FolderId,然后在Save Overload中使用它。例如,如果您在名为OtherContacts的contacts下有一个contacts文件夹,您可以使用类似的方法查找该文件夹中的联系人组,然后在该文件夹中创建该联系人组

        FolderView cfv = new FolderView(1000);
        cfv.Traversal = FolderTraversal.Shallow;
        SearchFilter cfFilter = new SearchFilter.IsEqualTo(FolderSchema.DisplayName,"OtherContacts");
        FolderId cntfld = new FolderId(WellKnownFolderName.Contacts, "mailbox@domain.com");
        FindFoldersResults ffcResult = service.FindFolders(cntfld, cfFilter, cfv);
        if (ffcResult.Folders.Count == 1) {
            ContactGroup cg = new ContactGroup(service);
            cg.DisplayName = "TestCg";
            cg.Save(ffcResult.Folders[0].Id);
        }
干杯
格伦

这起作用了。。。已经有文件夹id,所以我不需要任何搜索代码,但我相信它会帮助其他人:-)谢谢你的帮助