2014-01-06 3 views
10

Я установил пакет Glass.Mapper.Sc.CastleWindsor в версию 3.1.2.11 на мое решение Sitecore 7.1 и пытаюсь работать с выводимыми типами. У меня есть следующие классы:Glass Mapper: InferType игнорируется при запросе SitecoreContext

[SitecoreType] 
public class ServiceConfiguration 
{ 
    [SitecoreField(FieldName = "Service Id")] 
    public virtual string ServiceId { get; set; } 
} 

[SitecoreType(TemplateId = "{26512C19-8D30-4A1E-A2CD-3BA89AF70E71}")] 
public class JavascriptServiceConfiguration : ServiceConfiguration 
{ 
    [SitecoreField(FieldName = "Is Header Responsive")] 
    public virtual bool IsHeaderResponsive { get; set; } 
} 

И я быть_наст этот пункт:

enter image description here

В моем коде, я стараюсь, чтобы получить этот пункт из текущего контекста отображенного стекла со следующей линией код:

var serviceConfig = (new SitecoreContext()).GetItem<ServiceConfiguration>("{5436EEC6-1A4D-455F-8EF7-975C51FAE649}", inferType: true); 

Согласно documentation on inferred types, я бы ожидать, что serviceConfig будет иметь тип JavascriptServiceConfiguration, но он имеет тип ServiceConfiguration. Я что-то упускаю? Я не сделал какую-то определенную конфигурацию для стекла.

ответ

14

Прежде чем типы могут быть выведены, их необходимо загрузить Glass.Mapper. Более поздняя версия типов загрузок стекла по мере их запроса, но это не будет работать для предполагаемых типов. Чтобы решить эту проблему, вы можете заставить Glass загружать типы при запуске приложения.

Сначала найдите класс GlassMapperScCustom в своем решении. Затем вы должны обновить метод GlassLoaders:

public static IConfigurationLoader[] GlassLoaders() 
    { 
     var attributes = new AttributeConfigurationLoader("Your assembly name"); 

     return new IConfigurationLoader[] {attributes }; 
    } 

Сообщите мне, если это не исправить.

+0

Это исправлено. Я изменил «SitecoreAttributeConfigurationLoader» на «AttributeConfigurationLoader» в вашем решении, потому что Sitecore отмечен как устаревший ;-) –

+2

@MichaelEdwards Спасибо. Вероятно, вам стоит обновиться [Tutorial 1] (http://glass.lu/docs/tutorial/sitecore/tutorial01/tutorial01.html) и [20] (http://glass.lu/docs/tutorial/sitecore /tutorial20/tutorial20.html) на сайте Glass. – GFoley83

 Смежные вопросы

  • Нет связанных вопросов^_^