Каков наилучший способ получить свойство для типа контента с наиболее близким соответствием с использованием клиентского контекста (CSOM)?

Я преобразовываю коды приемника событий в удаленный приемник событий, используя контекст клиента SharePoint 2013.

var documentList = clientContext.Web.GetList(Constants.DocumentsListUrl);
var classifiedContentTypeId = documentList.ContentTypes.BestMatch(new
SPContentTypeId("0x0120D52000155C54BB8DF04DE78D5F78461B236DEF"));
var classifiedContentType =  
documentList.ContentTypes[classifiedContentTypeId];

Обратите внимание, что если поиск находит два совпадения, возвращается более короткий идентификатор. Например, если аргументом является 0x0101, а коллекция содержит как 0x010109, так и 0x01010901, метод возвращает 0x010109.

Метод List.ContentTypes.BestMatch доступен для получения ближайшего соответствия в SSOM. Каков правильный метод в CSOM? заранее спасибо


person kalimuthu    schedule 09.09.2016    source источник


Ответы (1)


Одна идея состоит в том, чтобы использовать

ContentType.Id.IsChildOf()

метод, а затем использовать строковые методы для выбора кратчайшего Guid ?

person Verthosa    schedule 12.09.2016
comment
Спасибо за ваше предложение, isChildof недоступен в CSOM. Есть ли у вас какая-либо логика для получения кратчайшего GUID из коллекции? - person kalimuthu; 12.09.2016
comment
Вы можете получить дочерние типы контента, используя простой метод «содержит». Дочерние типы контента всегда содержат идентификатор родительского типа контента. Таким образом, используя contains и сравнивая длины, вы можете обойти это отсутствие других методов. Не лучшее решение, но вы должны быть в порядке - person Verthosa; 13.09.2016