Glass Mapper Sc可以创建映射接口实例吗?

本文关键字:接口 实例 映射 创建 Mapper Sc Glass | 更新日期: 2023-09-27 18:12:10

我在我的项目中使用接口映射概念,因为我的Sitecore项目使用/继承多个基本模板。这工作很好,但有时我需要创建对象,实现我的模板接口(即。我想添加项目到Sitecore),我被迫创建实现所需接口的类,而不是创建对象。我需要这么做吗?是否有东西在Glass.Mapper.Sc返回代理对象,我可以使用?

Glass Mapper Sc可以创建映射接口实例吗?

所以我试着想象一个可能的场景,你会使用Castle的ProxyGenerator生成一个基于一个或多个接口的对象。但是我怀疑你会遇到问题,因为Glass的SitecoreService会期望使用TypeConfiguration,如果你生成一个代理,你就不会有。

然而,使用Interface创建一个新项目应该是可能的,像这样:

var service = new SitecoreService("master");
var newItem = service.Create<IArticle, ISitecoreItem>(parentItem, "New item name");
//populate the properties
newItem.Introduction = "In the beginning there was a...";
service.Save(newItem);

ISitecoreItem是父类的类型,你可以使用一个通用的接口。article是新条目的类型。

我还没有测试过这个,但是看看Glass的源代码,我不明白为什么这个不应该工作