Я использую интерфейс Mapping Concept в своем проекте, потому что мои элементы Sitecore используют/наследуют несколько базовых шаблонов. Это worknice, но иногда мне нужно создать объект, который реализует мой интерфейс шаблона (т. Е. Я хочу добавить элемент в Sitecore), чтобы сделать это, я вынужден создать класс, который реализует желаемый интерфейс и чем создает объект. Нужно ли мне это делать? Есть что-то в Glass.Mapper.Sc, который возвращает объект-прокси, который я могу использовать?Can Glass Mapper Sc создать экземпляр интерфейса отображения?
ответ
Итак, я попытался представить себе возможный сценарий, в котором вы бы использовали ProxyGenerator Castle для создания объекта на основе одного или нескольких интерфейсов. Но я подозреваю, что у вас возникнут проблемы, потому что SitecoreService от Glass будет ожидать, что будет работать с 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 тип родителя, вы можете использовать общий интерфейс для этого. Ячейка - это тип нового элемента.
Я не тестировал это, но, глядя на исходный код Glass, я не понимаю, почему это не должно работать.
Спасибо. Работайте как шарм! –
Я не уверен, что я следую за этим. Почему это проблема для создания класса, реализующего интерфейс. Может быть, это поможет, если вы покажете какой-то код того, что вы хотели бы сделать. – RvanDalen
@RvanDalen. Не создавать класс, реализующий мой интерфейс. Мне интересно, нужно ли мне это делать, потому что Glass создает внутренний объект прокси, я спросил: могу ли я получить стек объектной прокси-объекта, поэтому мне не нужно создавать классы. –
lukasz, вы имеете в виду созданный динамически, когда экземпляр объекта? Я думаю, что вы имеете в виду объект реляционного картографа, посмотрите GlassMapper :) http://glass.lu –