【问题标题】:After upgrading Sitecore & Glass mapper ISitecoreContext.GetCurrentItem<T>() returns null升级 Sitecore & Glass 映射器后 ISitecoreContext.GetCurrentItem<T>() 返回 null
【发布时间】:2015-05-18 22:37:28
【问题描述】:

我们正在升级到最新版本的 Sitecore,同时升级到 nuget 上提供的最新版本的 glass mapper。

我们的代码在开始 glass mapper 升级之前一直在工作,但由于 glass mapper 没有正确扩展我们的自定义类型,我们的代码开始失败。

还需要注意的是,我们没有使用 Windsor 作为 DI 容器,我们选择了最新版本的 Autofac,随后必须配置 glass mapper 以与我们的容器一起使用。

            var page = _context.GetCurrentItem<CarouselPage>();

这个方法调用曾经返回一个完全膨胀的对象,但现在它只返回由 glass mapper 创建的新实例。具有空属性,或具有空属性的动态类型。

    [SitecoreType(TemplateId = "0539B72D-FAAC-49DE-8A42-C60D7FF180DD")]
public class CarouselPage : ICarousel
{
    [SitecoreField()]
    [SitecoreEditable]
    public virtual IEnumerable<CarouselItem> Carousel { get; set; }

    [SitecoreField(FieldName = "Overlay Style")]
    public virtual bool OverlayStyle { get; set; }

    [SitecoreField(FieldName = "Carousel Pagination Alignment", FieldType = SitecoreFieldType.Droplink)]
    public KeyValue CarouselDotAlignment { get; set; }

    [SitecoreField(FieldName = "Equalize Desktop", FieldType = SitecoreFieldType.Droplink)]
    public KeyValue EqualizeDesktopText { get; set; }
}

    public interface ICarousel
{
    IEnumerable<CarouselItem> Carousel { get; set; } 
}

属性Carousel 为NULL,但CarouselDotAlignmentEqualizeDesktopTextKeyValue 类型的新动态实例,它们自己的属性等于NULL。

如果我绕过玻璃映射器并调用 Sitecore.Context.Database.GetItem({id}) 我实际上得到了一个带有似乎正确字段的项目。任何帮助将不胜感激。

【问题讨论】:

  • 您找到解决问题的方法了吗?
  • 由于时间限制,我们恢复了 glass mapper 的升级,并继续使用旧版 glass mapper 二进制文件与最新版本的 Sitecore 进行对比。抱歉,我们不太可能回到这个问题上。
  • 我遇到了同样的问题并解决了:stackoverflow.com/questions/23264897/…

标签: c# asp.net-mvc sitecore glass-mapper


【解决方案1】:

听起来属性可能没有正确配置,我会使用以下代码检查 Glass.Mapper 认为配置的内容:

        var result = Glass.Mapper.Context.Default.TypeConfigurations[typeof(MyModel)];
        var properties = result.Properties.Count();

结果对象将允许您探索 Glass 认为应该发生的事情。

【讨论】:

    【解决方案2】:

    这和这个问题有关#132 将 Nuget 包更新到 v4.0.1.5 应该可以解决这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-20
      • 1970-01-01
      • 2015-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多