Я добавляю пользовательский тип контента и затем устанавливаю его как тип контента по умолчанию для пользовательского типа контента. Я следовал инструкции в интернете. Когда я выполняю код, мой пользовательский тип контента был добавлен, но он не был установлен как тип контента по умолчанию (Нет ошибок, исключение при запуске). Вот мой код:
List list = web.Lists.GetByTitle(lname);
list.ContentTypesEnabled = true;
list.ContentTypes.AddExistingContentType(contentType);
var ctypes = list.ContentTypes;
context.Load(ctypes);
context.ExecuteQuery();
var ids = new List<ContentTypeId>();
foreach(var content in ctypes)
{
ids.Add(GetByName(ctypes, content.Name).Id);
}
ids.Reverse();
list.RootFolder.UniqueContentTypeOrder = ids;
list.RootFolder.Update();
list.Update();
context.Load(list.RootFolder, r => r.UniqueContentTypeOrder);
Console.WriteLine("Content-type Added!");
Функция GetByName выше я использую, чтобы получить ContentType по имени:
public static ContentType GetByName(ContentTypeCollection cts, string name)
{
var ctx = cts.Context;
ctx.Load(cts);
ctx.ExecuteQuery();
return Enumerable.FirstOrDefault(cts, ct => ct.Name == name);
}
Итак, где я понял это неправильно? Как я могу решить это?