2016-07-04 11 views
0

としてアイテムを取得するために失敗しています。私はIGlass_Baseオブジェクトとしてアイテムを取得しようとするとGlassMapperのGetItem <T>()メソッドは、私は次のようにGlassMapperを使用してアイテムを取得しようとしている特定のタイプ

、それは動作します:

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'のコードですか? –

+0

特定のタイプの代わりにvarを使用すると助けになりません。 – 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で生成されたGlassモデルのように見えるので、具体的な実装も(デフォルトで)作成されます。しかし、インターフェースも機能するはずですが、しばしばインターフェースに対してコーディングする方が望ましいでしょう。 – jammykam

+0

私たちはインタフェース(TDS経由で自動生成)の実装を持っています。 – Vikram

関連する問題