以编程方式将模板字段设置为共享或未版本化

Set a templates Field as Shared or Unversioned Programmatically

我正在使用 Sitecore 版本 8.1 并尝试以编程方式创建 TemplatesFieldsItems(以确保某些情况下 item/template 不存在)和我正在尝试将特定模板的字段设置为 sharedunversioned 但不能,因为:

bool TemplateFieldItem.Shared属性只有getter方法(没有setter)。

我的代码:

var icon = PageTemplate.AddField("Icon", "Data");
using (new EditContext(icon.InnerItem)) 
{ 
    icon.Type = "Image"; 
    icon.Sortorder = 3; 
    icon.Shared = false;
}

所以我的问题只在 icon.Shared = false;icon.Unversioned = false;

您需要在内部项目上设置它。从理论上讲,将字段从版本更改为未版本化或从共享更改为非共享是一个复杂的过程,但假设您正在添加这些字段并且应该没有任何项目,那么您应该没问题,

使用:

icon.InnerItem[TemplateFieldIDs.Unversioned] = "1"; // or null

或:

icon.InnerItem[TemplateFieldIDs.Shared] = "1"; // or null