当我有一个显式类型的对象时,索引就没有问题。例如,

EventObject e;
IElasticClient client;
client.Index(e); // perfectly valid

但是,我有一个类型为泛型的类。这是我的课
class FantasticClass<INDEXCLASS>
{
    IElasticClient client;
    public FantasticClass(IElasticClient c)
    {
        client = c;
    }

    public INDEXCLASS Add(INDEXCLASS entity)
    {
        client.Index(entity); // can't compile!
        // or
        client.Index<INDEXCLASS>(entity); // can't compile!
    }
}

推断类类型时如何使用Nest编制索引?

最佳答案

无法编译的问题是由于该类缺少声明INDEXCLASS类型的声明而导致的,因此应该可以解决该错误:

class FantasticClass<INDEXCLASS> where INDEXCLASS : class

此外,Add方法的返回类型为INDEXCLASS,但是该方法中未返回任何内容。将其编入索引后,可以将其更改为void或返回entity变量。

关于c# - 当我们索引的类型是泛型时如何调用IElasticClient.Index(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31006712/

10-11 02:05