问题标签 [glass-mapper]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
571 浏览

wcf - WCF 和 Castle 库(玻璃映射器)

你好,我在 Sitecore 6 下有 WCF 服务,webHttpEndpointBehavior我使用 Glass Mapper 读取项目,Glass Mapper 依赖于 Castle 库。

它运行良好,但我有一些使用 Contract 的方法,例如:

我尝试以 JSON 格式返回我的类的列表,在使用 SvcTraceViewer.exe 调试我的服务期间,我发现了下一个错误:

尝试序列化参数时出错:GetFamilyShadesResult。InnerException 消息是 'Type 'Castle.Proxies.ShadeProxy' 与数据合同名称 'ShadeProxy: http://schemas.datacontract.org/2004/07/Castle.Proxies ' 不是预期的。考虑使用 DataContractResolver 或将任何静态未知的类型添加到已知类型列表中 - 例如,通过使用 KnownTypeAttribute 属性或将它们添加到传递给 DataContractSerializer 的已知类型列表中。有关更多详细信息,请参阅 InnerException。

如何解决这个问题?Castle.Proxies.ShadeProxy是 Castle 下的动态类,我不能使用 KnownTypeAttribute.

实际上,如果我使用 JSON.net 库并将结果作为字符串返回,则一切正常。

0 投票
1 回答
2203 浏览

sitecore - 带有 Sitecore 的 Glass 中的图像列表

我正在使用Glass 库作为 Sitecore 的 ORM。我有一个包含图像列表的图像字段。因为我想从我的 .NET 代码中访问它,所以我编写了一个部分类,其中包含如下字段图像:

但是在加载这个时我得到了错误。

我可以通过 Glass 访问单个图像,而无需编写任何额外的代码。

任何人都可以建议解决这个问题吗?

0 投票
2 回答
4779 浏览

sitecore - Sitecore Glass Mapper:接口或具体类的属性?

我们是 Glass mapper 的新手,想在我们的 Sitecore 项目中使用它。在查看教程时,我们注意到没有关于如何设置 Sitecore 允许的深度继承的深入示例。浏览网页时,我们注意到有人将属性放在接口上,而另一方面,有人将属性放在具体类上。这些例子都没有解释他们这样做的充分理由,但给我们留下了一个问题:正确的用法是什么,做其中一个有什么影响?

考虑以下:

模板:内容(这是一个添加 2 个简单字段的字段部分模板:标题、正文) 该模板直接或间接地被我们的许多模板继承。

现在在我们的一个子布局中,我们只使用这部分,它是一种更通用的控件,因此我们需要做:GetCurrentItem<Content>GetCurrentItem<IContent>

就我个人而言,我觉得GetCurrentItem<IContent>更直观,因为它感觉像是在问:“如果它支持内容部分,请给我当前项目”,而另一个感觉更像是“如果它是内容部分,请给我当前项目”(这在技术上是不可能的,因为永远不会创建内容项)

0 投票
1 回答
349 浏览

sitecore - Glass mapper v2 how to fallback to default language

I am using glass mapper v2 in my project. Glass Mapper working great, but in case I added new language to site, glass mapper can't read a lot of properties and I am getting Null Reference errors. I would like to have glass mapper behavior like read Default Sitecore Language data in case language is skipped. Is it real ? Thanks.

0 投票
1 回答
877 浏览

asp.net-mvc - Glass.Mapper 是否支持 Sitecore 7 中的 MVC 模型链接?

在 Sitecore 7 中,现在可以在下创建模型定义项/sitecore/layout/Models并将它们链接到我的LayoutsRenderings(而不是在每个项上硬编码类型 + 程序集)。这使得管理变得更加容易,尤其是当我需要更新我的命名空间或查看哪些布局正在使用特定模型时。

也就是说,我遇到了一个问题,Glass.Mapper 似乎将“模型”字段解析为一个text字段,而实际上它是一个Internal Link字段。这是我得到的错误:

无法从程序集“Glass.Mapper.Sc,Version=3.0.2.8,Culture=neutral,PublicKeyToken=null”加载类型“/sitecore/layout/Models/HomeViewModel”。

如果 Glass 支持链接到 Sitecore 7 中的模型,现在有人吗,或者我是否正确地假设它只是没有将内部链接字段解析到模型?

0 投票
2 回答
3588 浏览

sitecore - Sitecore Glass Mapper (v3) 用于未填充基于查询的属性

更新:我使用的是 Sitecore 7.0 版

到目前为止,我正在成功使用 Glass.Mapper.Sc。我已经成功映射了许多模型。我现在刚刚尝试了我的第一个查询映射,但无法让它工作。

我有以下两种型号

根据教程,我应该期望 TestimonialList 填充有 Testimonial 项目列表。但是,列表始终为空。

我已经通过使用 sitecore 的开发人员工具中的 XPath 构建器以及通过以下使用 Sitecore API 来检查路径是否有效。

returnVal 填充了预期的项目。我也尝试过./*[@@templateName='Testimonial']作为映射属性的查询。

我已经成功地手动检索了一个特定的 Testimonial 实例,以检查这不是一些奇怪的映射问题。

除了这个问题,Glass.Mapping.Sc 和我的模型似乎一切正常。到目前为止,我已经按照glass.lu上的教程进行操作,并且通过 NuGet 安装了 Glass.Mapping.Sc。

我查看了 github 上的源代码,但看不到任何可能导致我的问题的东西。有没有其他人遇到过这个问题或成功使用带有玻璃的查询填充参数?

更新(根据迈克尔的回复):
我在 Testimonials 类中添加了以下属性

这返回了一个已填充的 AbstractModel 的 IEnumerable,它们是作为 Testimonials 项的直接子项的 6 个 Testimonial 项。

我也试过

并得到相同的结果。我不明白那个,因为我希望得到比 6 个推荐更多的项目。

我删除了 TestimonialList 属性并添加了一个新属性 Children,并且该属性完美运行

然后我使用 resharper 将属性重命名为 TestimonialList,然后是 ZYX,然后是 Blerg。所有三次都没有工作(没有填充),但如果我重命名回儿童,一切都很好。奇怪的。

更多更新 我发现为什么当属性被命名为“儿童”时查询似乎正在工作。它不起作用,这是我得到意想不到的结果的方式。“Children”是填充在所有子项上的公共属性。因为我所有的子项目都是推荐书,所以可以正确填充。

因此,如果我将我的属性更改为以下内容,它仍然会正确填充

见于 Glass.Mapper.Sc.Integration.DataMappers.SitecoreChildrenMapperFixture.MapToProperty_ItemHasThreeChildren_ThreeObjectsAreCreated。

0 投票
1 回答
1704 浏览

orm - MissingMethodException:找不到方法:'System.Delegate System.Reflection.MethodInfo.CreateDelegate(System.Type)'

使用 Glass 映射器时,我在 Sitecore 中缺少方法异常。这在 Sitecore 7 项目中有效,但是当我尝试在 Sitecore 6.6 项目中使用它时,它失败了。我不知道如何找到正在进行的底层方法调用中的问题。

我猜这可能是由于 Sitecore 6.6 和 Sitecore 7.0 中的 .net 框架版本不同

我正在使用Glass.Mapper.Sc.CastleWindsor nuget 包版本 3.0.3.7

此外,我无法在任何地方找到 Glass mapper 的完整来源。

0 投票
2 回答
2463 浏览

c# - PageEditor 模式下 Sitecore 的 Glass 映射器异常

对于代码:

mainlinkitem是为数据模板创建的界面的导航对象。在这种情况下,我正在使用接口,并且城堡温莎为此创建了动态代理对象。

一切正常,直到我尝试使用页面编辑器模式并从 glass mapper api 显示以下错误。

表达式不计算为 Glass.Mapper.Sc.GlassHtml.MakeEditable[T] 中的成员 x.NavigationItem.Url.StringToLink()(表达式1 field, Expression1 标准输出、T 模型、字符串参数、上下文上下文、数据库数据库、TextWriter 编写器)

string注意:StringToLink 是将表单中的外部 url 转换为 Glass 映射器Glass.Mapper.Sc.Fields.Link类型的扩展方法。

更新

菜单用户控制代码:

玻璃映射器的导航文件夹界面:

玻璃映射器的导航链接界面:

注意:这将代码将生成类似于 sitecore 站点的菜单

更新

接口中的url属性IItem定义如下:

0 投票
1 回答
3406 浏览

sitecore - 如何使用附加属性扩展 Glass.Mapper.Sc.Fields.Image?

我将 Sitecore 媒体库图像的裁剪信息存储在添加到/sitecore/templates/System/Media/Unversioned/Image模板的字段中。

我想访问此字段以及Glass.Mapper.Sc.Fields.Image复杂字段类型中存在的所有其他属性,以便我可以继续GlassHtml.RenderImage()在我的视图中使用。

我最初从该类继承的尝试没有成功——它似乎破坏了映射行为——所以我想知道是否有另一种方法可以用其他属性来扩展这个类?

这是我尝试过的:

0 投票
1 回答
4606 浏览

c# - Glass.Mapper 和使用接口创建 Sitecore 项目

这是来自 Twitter 的一个问题

从界面模型创建项目的模式是什么?使用sitecoreService.Create<T,K>(T newItem, K parent)whereT是一个接口,需要添加一个类来创建新项目。有没有办法直接从界面创建它们?