Sitecore 如何在Glass模型中检索字段集合?

Sitecore 如何在Glass模型中检索字段集合?,sitecore,glass-mapper,Sitecore,Glass Mapper,是否可以检索字段集合作为映射玻璃模型的属性?例如,我在Sitecore中有一个“产品”项,其中包含一组自定义的“产品属性”字段。我希望能够将这些字段作为一个集合来访问,通过它我可以枚举,而不必在我的glass模型中显式地命名字段。这样,我就可以添加更多属性并在代码中枚举它们,而无需更改glass模型代码 如下所示: [SitecoreInfo(SitecoreInfoType.Fields)] public virtual IEnumerable<something> Attribu

是否可以检索字段集合作为映射玻璃模型的属性?例如,我在Sitecore中有一个“产品”项,其中包含一组自定义的“产品属性”字段。我希望能够将这些字段作为一个集合来访问,通过它我可以枚举,而不必在我的glass模型中显式地命名字段。这样,我就可以添加更多属性并在代码中枚举它们,而无需更改glass模型代码

如下所示:

[SitecoreInfo(SitecoreInfoType.Fields)]
public virtual IEnumerable<something> Attributes { get; set; }
[SitecoreInfo(SitecoreInfoType.Fields)]
公共虚拟IEnumerable属性{get;set;}

非常感谢。

您实际上需要

[SitecoreInfo(SitecoreInfoType.Fields(Filters=“*.customAttributes”,Order=“…”)]

因为您必须定义集合的顺序以及如何识别要包含在集合中的项目的方法。最好不要这样做,并寻找一个更清洁的解决方案


例如,您可以将产品属性指定为子项,或者只给产品属性实名并在子布局/视图中引用它们

如果没有更多细节,听起来您可能想为自定义类型实现一个via
AbstractSitecoreFieldMapper

当您说“产品属性”字段时,我假设它们实际上是树中其他位置的其他Sitecore项(可通过多列表或类似方式选择)?它们是自定义字段类型,是产品模板的字段。它们不是子项。如果它们是模板上的字段(默认或自定义),那么除了使用反射之外,我不知道有什么方法(我会避免反射路径)。可能使用某种代码生成工具,或者重新考虑您的设计。@EpikHail可能会更改信息体系结构,并在可能的情况下强制他们在树状列表或多重列表中选择此项。通过这样做,可以将它们列为一个列表,您的代码也可以工作:)@nsgocev这是明智的,但是还有一些其他要求使得这种方法更可取。感谢您的回复。
SitecoreInfoType.Fields
来自哪里?它不在有效枚举值列表中,因为它只是一个创造性地发明的伪代码。我想我已经提到了。不幸的是,创造性地发明的伪代码不能解决问题:(谢谢,我将对此进行调查。这是一个很好的解决方案。我编写了一个自定义数据处理程序,返回产品属性字段的集合。为了说服Glass进行映射,有必要在产品模板中添加一个文本字段。