2016-07-04 49 views
0

我試圖讓使用GlassMapper如下項目:GlassMapper - 的GetItem <T>()方法未能得到項目的特定類型

var myCustomObj=SitecoreContext.GetItem<IMy_Custom_Type>(itemId); 

myCustomObj總是空。

當我試圖獲得該項目作爲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   

    } 
+0

是吧'templateID'還是'itemID'?你的'IMy_Custom_Type'的代碼是什麼?使用var而不是特定類型的 –

+0

並沒有幫助。 – pijemcolu

+0

這是itemID。 IMy_Custom_Type是使用TDS生成的接口。 – Vikram

回答

0

創建類名爲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); 
+1

看起來他們正在使用產生的玻璃模型TDS,所以具體實施也將創建(默認)。但接口也應該可以工作,並且通常最好是針對接口進行編碼。 – jammykam

+0

我們已經實現了接口(通過TDS自動生成)。 – Vikram

相關問題