【问题标题】:Glass.Mapper.Sc.CastleWindsor can't apparently access classes in another assemblyGlass.Mapper.Sc.CastleWindsor 显然无法访问另一个程序集中的类
【发布时间】:2014-07-10 16:27:19
【问题描述】:

我们正在运行 Sitecore 7.2,并且正在探索将 Glass.Mapper.Sc.CastleWindsor 用于一个刚刚开始的大型项目。我们遇到了问题。

我们有以下解决方案: 1. 核心可重用代码的基础项目 2. 可重用的web代码、控件等的基础web项目(参考#1) 3. 领域模型和其他非web代码的项目特定项目(参考#1) 4.项目特定的web项目(参考#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,我们不愿意这样做,因为这将意味着进一步使用自定义物品生成器或裸物品访问.感谢您提供的任何帮助。

【问题讨论】:

  • 您能否发布您尝试映射的模型以包含映射标记有问题?
  • 更重要的是,您如何设置温莎城堡?默认安装只注册正在执行的程序集,而不是任何引用的程序集。

标签: sitecore sitecore7 glass-mapper sitecore7.2


【解决方案1】:

我现在在 Sitecore 7.2 中使用的是旧版本的 Glass (2.0.11),对此我没有任何问题。基本上,这就是我从Global.asax 加载程序集的方式(不涉及 IoC):

using Glass.Sitecore.Mapper.Configuration.Attributes;
var loader = new AttributeConfigurationLoader(new[] {
  "namespace, assembly",
  "namespace#2, assembly#2",
});

var ctx = new Glass.Sitecore.Mapper.Context(loader);

类名可能有点不同,但这给了你一个粗略的想法。

另外,我注意到我们在初始化 Glass 时使用了namespace, assembly 符号。也许这就是原因?

【讨论】:

    【解决方案2】:

    您使用的是哪个版本的 Glass?在最近的版本中,SitecoreAttributeConfigurationLoader 已被弃用。对于基本使用,您根本不需要指定配置加载器。尝试使用开箱即用的 GlassMapperScCustom。如果这不起作用,请改用Glass.Mapper.Configuration.Attributes.AttributeConfigurationLoader

    【讨论】:

      猜你喜欢
      • 2021-12-04
      • 1970-01-01
      • 1970-01-01
      • 2012-11-12
      • 2017-08-18
      • 1970-01-01
      • 1970-01-01
      • 2011-04-03
      • 2011-09-02
      相关资源
      最近更新 更多