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

时间:2017-06-08 11:05:31

标签: sitecore sitecore8

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

我想比较所有版本以识别差异。 Sitecore是否有一些可以开箱即可完成此任务的东西?或者我必须遍历所有版本,然后遍历所有字段以找到差异。

1 个答案:

答案 0 :(得分: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

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