我们正在运行 Sitecore 7.2,并正在探索将 Glass.Mapper.Sc.CastleWindsor 用于一个刚刚开始的大型项目。我们遇到了问题。
我们有以下解决方案: 1. 核心可重用代码的基础项目 2. 可重用 web 代码、控件等的基础 web 项目(参考 #1) 3. 领域模型和其他非 web 的项目特定项目代码(参考#1) 4. Project-specific web project(参考#1,2,3)
项目#2 和#4 指向同一个Web 根目录。我们运行 Sitecore 的多站点实例,但这个项目是我们在 7.x 版本上的第一个项目;其他人将适时迁移。
在 GlassMapperScCustom GlassLoaders() 方法中,我们有这个:
return new IConfigurationLoader[] { new SitecoreAttributeConfigurationLoader("{assembly name of project # 3}") };
对于我们的第一个概念验证,我们在项目 3 中找到了一个域模型类,并试图让 Glass 映射在项目 4 中工作。没有骰子。以下都返回一个项目,但没有填写字段:
new SitecoreContext().GetCurrentItem<{class name}>()
new SitecoreContext().GetItem<{class name}>("path")
new SitecoreContext().GetItem<{class name}>(new Guid("Sitecore GUID"))
我们已经尝试在所有四个项目中安装 nuget 包 Glass.Mappers.Sc.CastleWindsor,但无济于事。我们也尝试过使用 VersionDisabler、检查网站语言等,但也没有成功。
Glass.Mapper.Sc 教程和一些示例代码不一致,我怀疑这是问题的一部分。一些教程展示了旧的做事方式,另一些展示了新的,但我们现在已经尝试了教程中显示的所有方式来加载我们的类。
该页面... http://www.glass.lu/download/glass-sitecore-mapper/ ...似乎表明Glass仅支持7.0版的Sitecore。这是准确的,还是只是更过时的信息?这些链接似乎从那个 Marketplace 页面转到旧的 Sitecore Mapper 网站。
我们需要尽快完成这项工作,否则我们将不得不放弃在这个大型项目中使用 Glass,我们不愿意这样做,因为这将意味着进一步使用自定义项目生成器或裸项目访问。感谢您提供任何帮助。