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

时间:2015-09-11 07:10:52

标签: c# sitecore glass-mapper sitecore8

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

1 个答案:

答案 0 :(得分:2)

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

但是,使用接口创建新项目应该是这样的:

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是父类型,您可以使用通用接口。 IArticle是新项目的类型。

我没有对此进行测试,但是查看Glass的源代码我不明白为什么这不起作用。