C# Office 365邮件API在.NET中执行搜索

C# Office 365邮件API在.NET中执行搜索,c#,search,outlook,odata,office365,C#,Search,Outlook,Odata,Office365,我正在开发一个C#桌面应用程序,它可以在Office365 Mail中执行一些操作。 我使用C#中的客户端库创建查询以检索电子邮件。 但是我被困在我想在我的应用程序中创建的搜索功能上 根据示例,我可以使用$search参数对收件箱执行搜索。 但是我在客户端库中找不到任何函数来完成这个任务? 因此,我尝试在where子句中使用String.Contains函数,但这会创建一个带有$filter的查询: var query = (from i in client.Users[Configuratio

我正在开发一个C#桌面应用程序,它可以在Office365 Mail中执行一些操作。 我使用C#中的客户端库创建查询以检索电子邮件。 但是我被困在我想在我的应用程序中创建的搜索功能上

根据示例,我可以使用$search参数对收件箱执行搜索。 但是我在客户端库中找不到任何函数来完成这个任务? 因此,我尝试在where子句中使用String.Contains函数,但这会创建一个带有$filter的查询:

var query = (from i in client.Users[ConfigurationManager.AppSettings["SharedMailbox"]].Folders["Inbox"].Messages
            where(i.From.EmailAddress.Address.Contains(searchString))
            select new MessageCompact()
            {
            Id = i.Id,
            ParentFolderId = i.ParentFolderId,
            DateTimeReceivedOffset = i.DateTimeReceived,
            Sender = i.Sender.EmailAddress.Address,
            Subject = i.Subject,
            BodyPreview = i.BodyPreview,
            Categorieen = i.Categories
        });

var messageResults = await foundedMessages.ExecuteAsync();
执行时,我得到异常:

异常:引发:“{”错误:{”代码:“{”ErrorInvalidUrlQueryFilter”,“消息:“'contains'和'StartWith'不支持筛选。请改用搜索。“}”(Microsoft.OData.Client.DataServiceClientException) 引发了Microsoft.OData.Client.DataServiceClientException:“{”错误“{”代码“:“ErrorInvalidUrlQueryFilter”,“邮件“:”筛选不支持“contains”和“StartWith”。请改用搜索。“}”

当我使用这段代码手动添加搜索选项时,我得到了异常

DataServiceQuery<Message> foundedMessages = client.Users[ConfigurationManager.AppSettings["SharedMailbox"]].Folders["Inbox"].Messages.Context
                                        .CreateQuery<Message>("Users('xyz@abc.com')/Folders('Inbox')/Messages")
                                        .AddQueryOption("$search", searchString);
DataServiceQuery foundedMessages=client.Users[ConfigurationManager.AppSettings[“SharedMailbox”]]文件夹[“收件箱”].Messages.Context
.CreateQuery(“用户”()xyz@abc.com“)/文件夹(“收件箱”)/邮件”)
.AddQueryOption(“$search”,searchString);
异常:引发:“无法添加查询选项“$search”,因为它以保留字符“$”开头。”(System.NotSupportedException) 引发System.NotSupportedException:“无法添加查询选项“$search”,因为它以保留字符“$”开头。”

如何使用.NET中的客户端库完成搜索


Marcel

这可能是同一个问题:这可能是同一个问题: