Sharepoint 如何解决我的问题:Can';是否使用csom(c#)为列表的自定义内容类型设置默认内容类型?

Sharepoint 如何解决我的问题:Can';是否使用csom(c#)为列表的自定义内容类型设置默认内容类型?,sharepoint,csom,contenttype,Sharepoint,Csom,Contenttype,我正在添加自定义内容类型,然后将其设置为自定义内容类型的默认内容类型。我遵循了互联网上的指示。 当我执行代码时,我的自定义内容类型已添加,但尚未设置为默认内容类型(运行时无错误、异常)。 这是我的密码: List List=web.Lists.GetByTitle(lname); list.ContentTypesEnabled=true; list.ContentTypes.AddExistingContentType(contentType); var ctypes=list.Content

我正在添加自定义内容类型,然后将其设置为自定义内容类型的默认内容类型。我遵循了互联网上的指示。 当我执行代码时,我的自定义内容类型已添加,但尚未设置为默认内容类型(运行时无错误、异常)。 这是我的密码:

List List=web.Lists.GetByTitle(lname);
list.ContentTypesEnabled=true;
list.ContentTypes.AddExistingContentType(contentType);
var ctypes=list.ContentTypes;
加载(ctypes);
context.ExecuteQuery();
var id=新列表();
foreach(ctypes中的var内容)
{
Add(GetByName(ctypes,content.Name).Id);
}
id.Reverse();
list.RootFolder.UniqueContentTypeOrder=ids;
list.RootFolder.Update();
list.Update();
Load(list.RootFolder,r=>r.UniqueContentTypeOrder);
Console.WriteLine(“添加了内容类型!”);
我使用上面的函数GetByName按名称获取ContentType:

public静态ContentType GetByName(ContentTypeCollection-cts,字符串名)
{
var ctx=cts.Context;
ctx.载荷(cts);
ctx.ExecuteQuery();
返回可枚举的.FirstOrDefault(cts,ct=>ct.Name==Name);
}

那么,我哪里弄错的?如何解决它?

尝试使用下面的代码设置列表的默认内容类型

List aeList = context.Web.Lists.GetByTitle(lname);
var currentCtOrder = aeList.ContentTypes;
context.Load(currentCtOrder, coll => coll.Include(
                        ct => ct.Name,
                        ct => ct.Id));
context.ExecuteQuery();

IList<ContentTypeId> reverseOrder = (from ct in currentCtOrder where ct.Name.Equals("CustomContentTypeName", StringComparison.OrdinalIgnoreCase) select ct.Id).ToList();
aeList.RootFolder.UniqueContentTypeOrder = reverseOrder;
aeList.RootFolder.Update();
aeList.Update();
context.ExecuteQuery();
List aeList=context.Web.Lists.GetByTitle(lname);
var currentCtOrder=aeList.ContentTypes;
Load(currentCtOrder,coll=>coll.Include(
ct=>ct.Name,
ct=>ct.Id));
context.ExecuteQuery();
IList reverseOrder=(从currentTolder中的ct开始,其中ct.Name.Equals(“CustomContentTypeName”,StringComparison.OrdinalIgnoreCase)选择ct.Id).ToList();
aeList.RootFolder.UniqueContentTypeOrder=reverseOrder;
aeList.RootFolder.Update();
aeList.Update();
context.ExecuteQuery();