2016-09-09 22 views
0

我使用SharePoint 2013客户端上下文将事件接收器代码转换为远程事件接收器。使用客户端上下文(CSOM)获取最接近匹配的内容类型属性的最佳方法是什么?

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

请注意,如果搜索找到两个匹配项,则会返回较短的ID。例如,如果0x0101是参数,并且集合包含0x010109和0x01010901,则该方法返回0x010109。

List.ContentTypes.BestMatch方法可用于在SSOM中获得最接近的匹配。 CSOM中正确的方法是什么? 在此先感谢

回答

0

一个想法是利用

ContentType.Id.IsChildOf() 

方法,然后用字符串的方法来选择最短的Guid?

+0

谢谢您的建议,isChildof在CSOM中不可用 您有任何逻辑从集合中获取最短的GUID吗? – kalimuthu

+0

您可以使用简单的“包含”方法获取子内容类型。子内容类型始终包含父内容类型的标识。所以通过使用包含和比较长度,你可以绕过这种缺乏其他方法。不是最好的解决方案,但你应该没问题 – Verthosa

相关问题