Sitecore 以编程方式比较项目版本

Posted

技术标签:

【中文标题】Sitecore 以编程方式比较项目版本【英文标题】:Sitecore compare items version programmatically 【发布时间】:2017-06-08 11:05:30 【问题描述】:

假设我有一个有 5 个版本的项目。 (我不是在谈论语言版本)。

我想比较所有版本以找出差异。 Sitecore 是否有一些现成可用的东西来完成这项任务?或者我必须遍历所有版本,然后遍历所有字段才能找到差异。

【问题讨论】:

不懂问题,可以使用Sitecore的版本比较功能,选择不同版本的商品进行比较。为什么要遍历所有版本? 你在说这个Sitecore version compare。我想向不是内容编辑的普通用户显示信息。 是的,但我现在知道您想要为网站访问者提供一些东西?所以以编程方式,我认为它不在 Sitecore 中 【参考方案1】:

不,开箱即用没有类似的东西。您必须逐个比较字段。

请记住,应忽略某些字段(例如 __Updated__ValidFrom__Workflow State 等)。

请记住,在 Blob 字段中显示更改的内容并不容易。

这里有一个代码供你开始:

FieldCollection fields = version1.Fields;
fields.ReadAll();
fields.Sort();
foreach (Field field1 in fields)

    if (field1.ShouldBeTranslated)
    
        Field field2 = version2.Fields[field1.ID];
        var value1 = field1.Value;
        var value2 = field2.Value;
        ... // whatever you need here

确保添加所有必要的空检查!为了清楚起见,我跳过了它们。

【讨论】:

以上是关于Sitecore 以编程方式比较项目版本的主要内容,如果未能解决你的问题,请参考以下文章

Sitecore - 以编程方式清除用户的缓存

Sitecore SocialConnect 1.3:以编程方式检索用户详细信息

以编程方式创建时未保存 Sitecore 用户配置文件设置

Sitecore 获取存档项目

已发布版本中缺少图标 Sitecore temp iconcache

什么时候在Sitecore 7版本中明确使用SOLR而不是Lucene?