Sitecore 以编程方式比较项目版本
Sitecore compare items version programmatically
假设我有一个有 5 个版本的项目。 (我说的不是语言版本)。
我想比较所有版本以找出差异。 Sitecore 是否提供一些开箱即用的东西来完成这项任务?或者我必须遍历所有版本,然后遍历所有字段以找到差异。
不,开箱即用。您将必须逐一比较字段。
请记住,应忽略某些字段(例如 __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
确保添加所有必要的空值检查!为了清楚起见,我跳过了它们。
假设我有一个有 5 个版本的项目。 (我说的不是语言版本)。
我想比较所有版本以找出差异。 Sitecore 是否提供一些开箱即用的东西来完成这项任务?或者我必须遍历所有版本,然后遍历所有字段以找到差异。
不,开箱即用。您将必须逐一比较字段。
请记住,应忽略某些字段(例如 __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
确保添加所有必要的空值检查!为了清楚起见,我跳过了它们。