Если и сериализатор, и десериализатор имеют доступ к базе данных Sitecore, то вы можете очень легко создать оболочку, которая просто сериализует идентификатор, имя базы данных, версию и язык. Затем, после десериализации на другом конце, вы можете повторно извлечь тот же элемент Sitecore из базы данных, используя эту информацию.
Если десериализатор вообще не имеет доступа к базе данных, то это действительно зависит от ваших потребностей в использовании данных. Обычно я перебираю все поля (не забывайте сначала использовать item.Fields.ReadAll()
) и сохраняю их в словаре для быстрого доступа. Для сериализации я преобразую это в List<T>
пар ключ-значение и игнорирую элемент Dictionary
(поскольку он не может быть сериализован), а затем повторно заполняю его при десериализации. Я также оставил в классе несколько других свойств, таких как ID, Язык, Версия, Шаблон, Путь и т. Д.
В качестве альтернативы, если вы создаете целую библиотеку классов моделей, чтобы каждый шаблон отображался в классе (что делают некоторые люди), вы можете (вероятно) сериализовать их сразу, поскольку они (вероятно) больше не связаны с Sitecore пункт.