2016-09-09 4 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]; 

検索で2つの一致が見つかると、短いIDが返されることに注意してください。たとえば、0x0101が引数で、コレクションに0x010109と0x01010901の両方が含まれている場合、このメソッドは0x010109を返します。

List.ContentTypes.BestMatchメソッドは、SSOMで最も近い一致を得るために使用できます。 CSOMの正しい方法は何ですか?事前に おかげで

答えて

0

ひとつのアイデアは、

ContentType.Id.IsChildOf() 

方法を利用して、その後、最短GUIDを選択するために、文字列のメソッドを使用するのですか?

+0

あなたのご提案ありがとうございます、isChildofはCSOMにありません コレクションから最短のGUIDを取得するロジックはありますか? – kalimuthu

+0

単純な 'contains'メソッドを使用して子コンテンツタイプを取得できます。子コンテンツタイプには常に親コンテンツタイプのIDが含まれます。したがって、containsを使用して長さを比較することにより、この他のメソッドの欠如を回避することができます。最高の解決策ではありませんが、あなたはうまくいくはずです – Verthosa

関連する問題