Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Singleton ImplementationType:无法解析类型为';Nest.IElasticClient';试图激活时_C#_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,C#,elasticsearch" /> elasticsearch,C#,elasticsearch" />

C# Singleton ImplementationType:无法解析类型为';Nest.IElasticClient';试图激活时

C# Singleton ImplementationType:无法解析类型为';Nest.IElasticClient';试图激活时,c#,elasticsearch,C#,elasticsearch,我有一个使用.NET Core 3.1的默认web api模板项目,我已经在我的startup.cs上注册了弹性搜索嵌套。但当我加载它时,它在 Singleton ImplementationType:尝试在program.cs中激活时,无法解析类型“Nest.IElasticClient”的服务 public static void Main(string[] args) { CreateHostBuilder(args).Build()

我有一个使用.NET Core 3.1的默认web api模板项目,我已经在我的
startup.cs
上注册了弹性搜索嵌套。但当我加载它时,它在

Singleton ImplementationType:尝试在
program.cs中激活
时,无法解析类型“Nest.IElasticClient”的服务

        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }
这是我的startup.cs

    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();
            services.AddSingleton<IProductService, ESProductService>();
            services.Configure<ProductSettings>(Configuration.GetSection("product"));
            services.AddElasticsearch(Configuration);
        }

        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseHttpsRedirection();

            app.UseRouting();

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }
    }

问题解决了。AddSingleton错过了接口<代码>服务.AddSingleton(客户端)

你能分享你的AddLasticSearch方法吗?@tontonsevilla我刚刚在原始帖子中添加了。谢谢。客户是什么?
public static class ElasticsearchExtensions
    {
        public static void AddElasticsearch(this IServiceCollection services, IConfiguration configuration)
        {
            var url = configuration["elasticsearch:url"];
            var defaultIndex = configuration["elasticsearch:index"];

            var settings = new ConnectionSettings(new Uri(url))
                .DefaultIndex(defaultIndex);

            AddDefaultMappings(settings);

            var client = new ElasticClient(settings);

            services.AddSingleton(client);

            CreateIndex(client, defaultIndex);
        }

        private static void AddDefaultMappings(ConnectionSettings settings)
        {
            settings
                .DefaultMappingFor<Product>(m => m
                .Ignore(p => p.Price)
                .Ignore(p => p.Quantity)
                .Ignore(p => p.Rating)
            );
        }

        private static void CreateIndex(IElasticClient client, string indexName)
        {
            var createIndexResponse = client.Indices.Create(indexName,
                index => index.Map<Product>(x => x.AutoMap())
            );
        }
    }