我需要一种控制构建方面的方法,而不仅仅使用嵌套流畅的api。主要的需求是我可能需要包括或排除所有问题或面部过滤器。
下面的代码有效,但要更改方面,我需要重新编译。我看到它需要一个Func,但我无法返回正确的类型以使其工作。
sd.FacetTerm("Name", t => t
.OnField("Field")
.Size(facet.Size)
.AllTerms()
);
下面的代码不起作用,我很确定原因。在调试时,我看到它创建了facet术语,但没有“FacetBuilder”提供的任何数据。
sd.FacetTerm(facet.Name, t => FacetBuilder(options));
public TermFacetDescriptor<CatalogMapping> FacetBuilder(FacetOptions options)
{
var facet = new TermFacetDescriptor<CatalogMapping>();
facet.OnField(options.Field);
facet.Size(options.Size);
if (options.IncludeAllTerms)
facet.AllTerms();
return facet;
}
答案 0 :(得分:2)
需要传递对象引用并修改该实例。
public TermFacetDescriptor<CatalogMapping> FacetBuilder(TermFacetDescriptor<CatalogMapping> termFacet, FacetOptions options)
{
termFacet.OnField(options.Field);
termFacet.Size(options.Size);
if (options.IncludeAllTerms)
termFacet.AllTerms();
return termFacet;
}