Установить тип содержимого по умолчанию с помощью CSOM не работает - PullRequest
0 голосов
/ 20 мая 2019

Я создал новый тип контента в CSOM, мне нужно установить вновь созданный тип контента в качестве типа контента по умолчанию для созданного пользователем списка общих точек.Я использую приведенный ниже код.

List aeList = ctx.Web.Lists.GetByTitle("Project Definition");
var currentCtOrder = aeList.ContentTypes;
ctx.Load(currentCtOrder, coll => coll.Include(
                                 ct => ct.Name,
                                 ct => ct.Id));
ctx.ExecuteQuery();

IList<ContentTypeId> reverseOrder = (from ct in currentCtOrder where ct.Name.Equals("Project Definition", StringComparison.OrdinalIgnoreCase) select ct.Id).ToList();
aeList.RootFolder.UniqueContentTypeOrder = reverseOrder;
aeList.RootFolder.Update();
aeList.Update();
ctx.ExecuteQuery();

Но код выдает ошибку « System.NotSupportedException:« Указанный метод не поддерживается »» при запросе в строке №.5

Может ли кто-нибудь помочь?

1 Ответ

1 голос
/ 21 мая 2019
         static void Main(string[] args)
        {
            ClientContext ctx = new ClientContext("http://sp/sites/jerry");
            List list = ctx.Web.Lists.GetByTitle("Documents");
            ChangeContentTypeOrder(ctx, list);

        }
        private static void ChangeContentTypeOrder(ClientContext ctx, List list)
        {
            ContentTypeCollection currentCtOrder = list.ContentTypes;
            ctx.Load(currentCtOrder);
            ctx.ExecuteQuery();

            IList<ContentTypeId> reverceOrder = new List<ContentTypeId>();
            foreach (ContentType ct in currentCtOrder)
            {
                if (ct.Name.Equals("testct"))
                {
                    reverceOrder.Add(ct.Id);
                }
            }
            list.RootFolder.UniqueContentTypeOrder = reverceOrder;
            list.RootFolder.Update();
            list.Update();
            ctx.ExecuteQuery();
        }

enter image description here

...