继续运行到相同的 codeplex 链接...对于该方法的这种特定实现不是很有帮助。经过一些试验和错误后,我确实得到了这个工作,并且在尝试从自定义内容类型(即 BaseTemplate > 100000)创建列表时,它确实解决了“无效列表模板”错误。该函数从一个 SPWeb 获取一个 SPList 定义 (ListToCopy) 并将其复制到另一个 SPWeb (NewWeb)。现在唯一缺少的链接是最后一个参数 docTemplateType,我被迫手动指定(101 - MS Word)。不知道如何从源列表中获取那个。
public static Guid CopyListDefToAWeb(String SourceWebUrl, SPList ListToCopy, SPWeb NewWeb)
{
Guid newListGuid = Guid.Empty;
if (Convert.ToInt32(ListToCopy.BaseTemplate) < 10000)
{
newListGuid = NewWeb.Lists.Add(ListToCopy.Title, ListToCopy.Description, ListToCopy.BaseTemplate);
}
else
{
String newListUrl = ListToCopy.Title.Replace(" ", String.Empty);
newListGuid = NewWeb.Lists.Add(ListToCopy.Title, ListToCopy.Description, newListUrl, ListToCopy.TemplateFeatureId.ToString(), Convert.ToInt32(ListToCopy.BaseTemplate), "101");
}
return newListGuid;
}