相关疑难解决方法(0)

无法将lambda表达式转换为'System.Delegate'类型

这些都不起作用:

_uiDispatcher.Invoke(() => { });
_uiDispatcher.Invoke(delegate() { });
Run Code Online (Sandbox Code Playgroud)

我想要做的就是在我的主UI线程上调用内联方法.所以我在主线程上调用了这个:

_uiDispatcher = Dispatcher.CurrentDispatcher;
Run Code Online (Sandbox Code Playgroud)

现在我想从另一个线程在该线程上执行一些代码.我该怎么做?我使用了错误的语法吗?

请注意,这不是 WPF应用程序; 我引用了WindowsBase所以我可以访问Dispatcher该类.

c# multithreading dispatcher

47
推荐指数
2
解决办法
5万
查看次数

C#Elasticsearch NEST无法转换lambda表达式

遇到了完全相同的问题(并没有回答)ElasticSearch NEST Search

我用:

  1. .NET Framework 4.5;

  2. ASP.NET MVC 5;

  3. Elasticsearch 1.6.0(在服务器上);

  4. Elasticsearch.NET 1.6.1

  5. NEST 1.6.1

我有一个MVC控制器,它有两个动作:

  1. 索引 - 包含HTML UI表单

  2. 搜索 - 包含Elasticsearch.NET客户端和查询.

    public ActionResult Search(SearchCreteria sc)
    {
      Settings settings = new Settings();
      Client client = new Client(settings);
      ElasticsearchClient esClient = client.Get();
    
      var test = esClient.Search<Contract>(body => body.Query(query => query.QueryString(qs => qs.Query("test"))));
    
      return View(test);
    }
    
    Run Code Online (Sandbox Code Playgroud)

整个" body => body.Query(query => query.QueryString(qs => qs.Query("test"))) "上面代码中的lambda表达式有下划线的红色下划线,并带有以下工具提示:

(参数)?身体

错误:

无法将lambda表达式转换为类型"object",因为它不是委托类型

我搜索了问题并发现在99%的情况下,人们忘记包含一个程序集,通常是System.Linq.

嗯..我绝对不会忘记添加那个,但我可能我必须包括一个NEST特定组件或类似的东西(我确定不是真的,除了NEST本身),所以我决定添加一切我虽然可能有点相关,我最终得到了这个:

using System;
using System.Collections.Generic;
using …
Run Code Online (Sandbox Code Playgroud)

c# lambda delegates elasticsearch nest

4
推荐指数
1
解决办法
2288
查看次数