GlassMapper - GetItem()方法无法将项目作为特定类型获取
本文关键字:项目 获取 类型 GetItem 方法 GlassMapper | 更新日期: 2023-09-27 17:54:28
我正在尝试使用GlassMapper获取项目,如下所示:
var myCustomObj=SitecoreContext.GetItem<IMy_Custom_Type>(itemId);
但是myCustomObj
总是null。
当我尝试将项目作为IGlass_Base
对象时,它可以工作:
var myCustomObj=SitecoreContext.GetItem<IGlass_Base>(itemId);
编辑:下面是IMy_Custom_Type的样子:
/// <summary>
/// IMy_Custom_Type Interface
/// <para></para>
/// <para>Path: /sitecore/templates/User Defined/###/Pages/My Custom Type</para>
/// <para>ID: dfacd744-0cf8-4917-922c-4baeb07dfe35</para>
/// </summary>
[SitecoreType(TemplateId=IMy_Custom_TypeConstants.TemplateIdString, AutoMap = true )] //, Cachable = true
public partial interface IMy_Custom_Type : IGlassBase , global::SC.Global.Models.TemplateModels.Base_Templates.IMetadata, global::SC.Global.Models.TemplateModels.Base_Templates.IBase_Background_Image
{
/// <summary>
/// The My Custom field.
/// <para></para>
/// <para>Field Type: Multilist</para>
/// <para>Field ID: 43388fa5-a02a-425d-ae31-d94a12860748</para>
/// <para>Custom Data: </para>
/// </summary>
[SitecoreField(IMy_Custom_TypeConstants.MyCustomFieldName)]
IEnumerable<Guid> My_Custom_Field {get; set;}
:
:
// Few more fields
}
创建名为My_Custom_Type
的类,实现您的接口IMy_Custom_Type
,并将其他接口的所有属性添加到该类:
public class My_Custom_Type : IMy_Custom_Type
{
// IMy_Custom_Type properties
// IGlassBase properties
// IMetadata properties
// IBase_Background_Image properties
}
然后尝试像这样强制转换你的对象:
var myCustomObj=SitecoreContext.GetItem<My_Custom_Type>(itemId);