C# 从主电子邮件地址中包含特殊字符的邮箱检索日历信息

C# 从主电子邮件地址中包含特殊字符的邮箱检索日历信息,c#,calendar,exchangewebservices,C#,Calendar,Exchangewebservices,我一直在编写代码,使用Exchange Web服务从房间邮箱检索日历信息。我能够成功地从房间邮箱和用户邮箱中检索信息,但我似乎遇到了一个障碍。我的理论是它与地址中的符号有关。。。我可以确认这是房间邮箱的主要地址。我还确保可以从outlook访问日历 这是我的代码,它再次在其他邮箱上运行得很好,但在这个邮箱上失败了: EmailAddressType mailbox = new EmailAddressType(); mailbox.EmailAdd

我一直在编写代码,使用Exchange Web服务从房间邮箱检索日历信息。我能够成功地从房间邮箱和用户邮箱中检索信息,但我似乎遇到了一个障碍。我的理论是它与地址中的符号有关。。。我可以确认这是房间邮箱的主要地址。我还确保可以从outlook访问日历

这是我的代码,它再次在其他邮箱上运行得很好,但在这个邮箱上失败了:

            EmailAddressType mailbox = new EmailAddressType();
            mailbox.EmailAddress = "r&d@somecompany.org";
            DistinguishedFolderIdType[] parentFolderId = new DistinguishedFolderIdType[1];
            parentFolderId[0] = new DistinguishedFolderIdType { Id = DistinguishedFolderIdNameType.calendar, Mailbox = mailbox };
以前有没有人遇到过这种问题?你有没有可能把我推向正确的方向?感谢您的帮助

蒂亚,
里克。

你可能是对的。尝试将其替换为
&


说明:由于这是通过Web服务进行的,因此它可能在某个时候被解析为XML,并且
&
字符是保留的。因此,您需要使用
&任何时候你想在字符串中使用
&

谢谢你的提示,加里森。我已经试过了,但不幸的是没有成功。我也尝试过Uri.EscapeDataString和Uri.escapeUristing方法,但都没有做:(使用Fiddler,我查看了我的服务发送EWS的请求:“…R&;D@somecompany.org...“如果我移除逃逸,我得到:”…R&D@somecompany.org...“但这一次,我得到的回应是:“在存储中找不到指定的文件夹。"那么,我是否错误地认为这实际上可能是此特定资源邮箱的配置问题?我对Exchange Web服务没有任何经验,我只是在暗中建议使用
&;
这件事,因为我以前遇到过它。我希望我能提供更多。抱歉。嘿,没问题,tha谢谢你的建议!我终于明白了,这个问题与权限有关。我还学到了一些关于EWS的知识,非常有启发性。好吧,将你的修复作为答案发布,以便下一个遇到这个问题的人可以在这里找到它。:-)