问题描述
我是 .NET 的新手。我面临使用 RESTful API 将文档插入 Elasticsearch 的问题。触发 IndexAsync
方法时出现以下错误。
无法从用法推断方法“Elasticclient.IndexAsync(IIndexRequest,CancellationToken)”的类型参数。尝试明确指定类型参数。
下面是我实际运行的代码。感谢任何指向正确方向的指针。
// add new record into elastic
public bool Add(T item)
{
try
{
//_client.IndexDocument(item);
return _client.Index(item).Created;
}
catch (Exception ex)
{
throw ex;
}
}
// add new record into elastic in an asynchronous manner
public async Task<bool> AddAsync(T item)
{
try
{
var response = await _client.IndexAsync(item);
return response.Created;
}
catch (Exception ex)
{
throw ex;
}
}
解决方法
在您的方法中,您正在定义输入 T item
,它定义 item
是泛型类型 T
。对此有一些参考资料,例如 here。
如果你声明,你的方法中的逻辑只能推断类型 T
:
public bool Add<T>(T item)
{
...
}
public async Task<bool> AddAsync<T>(T item)
{
...
}
通过这种方式,您的类型参数 T
可以在您的方法的上下文中访问。
如果这不能解决您的问题,请提供有关您的代码和用例的更多详细信息。