C# Office 365邮件API在.NET中执行搜索
我正在开发一个C#桌面应用程序,它可以在Office365 Mail中执行一些操作。 我使用C#中的客户端库创建查询以检索电子邮件。 但是我被困在我想在我的应用程序中创建的搜索功能上 根据示例,我可以使用$search参数对收件箱执行搜索。 但是我在客户端库中找不到任何函数来完成这个任务? 因此,我尝试在where子句中使用String.Contains函数,但这会创建一个带有$filter的查询: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
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这可能是同一个问题:这可能是同一个问题: