SPContentTypeCollection.BestMatch - Méthode
Recherche la collection et retourne l'identificateur de type de contenu (ID) qui est le plus proche à l'ID de type de contenu spécifié.
Espace de noms : Microsoft.SharePoint
Assembly : Microsoft.SharePoint (dans Microsoft.SharePoint.dll)
Syntaxe
'Déclaration
Public Function BestMatch ( _
contentTypeId As SPContentTypeId _
) As SPContentTypeId
'Utilisation
Dim instance As SPContentTypeCollection
Dim contentTypeId As SPContentTypeId
Dim returnValue As SPContentTypeId
returnValue = instance.BestMatch(contentTypeId)
public SPContentTypeId BestMatch(
SPContentTypeId contentTypeId
)
Paramètres
contentTypeId
Type : Microsoft.SharePoint.SPContentTypeIdUn ID de type de contenu à faire correspondre.
Valeur renvoyée
Type : Microsoft.SharePoint.SPContentTypeId
La valeur de la propriété Id pour le type de contenu avec la valeur la plus proche du contenu spécifié le type ID. Si la recherche trouve deux correspondances, l'ID plus court est retourné. Par exemple, si 0x0101 est l'argument et que la collection contient à la fois 0x010109 et 0x01010901, la méthode retourne 0x010109.
Remarques
Utilisez cette méthode pour déterminer si une collection contient un enfant d'un type de contenu connu. Gardez à l'esprit, cependant, que lorsque vous copiez un type de contenu de site à une liste, le type de contenu dans la liste Obtient un nouvel ID de type de contenu sous la forme suivante.
site content type ID + "00" + 32-character hexadecimal GUID
Pour plus d'informations, consultez Content Type IDs.
Conseil
Si vous souhaitez savoir partout qu'un type de contenu est utilisé tout au long d'une collection de sites, appelez la méthode GetUsages .
Exemples
L'exemple suivant montre une application de console qui effectue une itération dans les listes d'un site Web et détermine si la collection de type de contenu de chaque liste contient un descendant d'un type de contenu spécifié.
Imports System
Imports Microsoft.SharePoint
Module ConsoleApp
Sub Main()
Using siteCollection As SPSite = New SPSite("https://localhost")
Using webSite As SPWeb = siteCollection.OpenWeb()
' Get a content type id to search for.
Dim contentTypeId As SPContentTypeId = SPBuiltInContentTypeId.Task
For Each list As SPList In webSite.Lists
If ListContains(list, contentTypeId) Then
Console.WriteLine("The {0} list uses the content type.", list.Title)
End If
Next list
End Using
End Using
Console.Write(vbCrLf + "Press ENTER to continue...")
Console.ReadLine()
End Sub
Function ListContains(ByVal list As SPList, ByVal id As SPContentTypeId) As Boolean
Dim matchId As SPContentTypeId = list.ContentTypes.BestMatch(id)
Return matchId.IsChildOf(id)
End Function
End Module
using System;
using Microsoft.SharePoint;
namespace Test
{
class ConsoleApp
{
static void Main(string[] args)
{
using (SPSite siteCollection = new SPSite("https://localhost"))
{
using (SPWeb webSite = siteCollection.OpenWeb())
{
// Get a content type id to search for.
SPContentTypeId contentTypeId = SPBuiltInContentTypeId.Task;
foreach (SPList list in webSite.Lists)
{
if (ListContains(list, contentTypeId))
Console.WriteLine("The {0} list uses the content type.",
list.Title);
}
}
}
Console.Write("\nPress ENTER to continue...");
Console.ReadLine();
}
static bool ListContains(SPList list, SPContentTypeId id)
{
SPContentTypeId matchId = list.ContentTypes.BestMatch(id);
return matchId.IsChildOf(id);
}
}
}
L'application imprime la sortie suivante sur la console.
The Tasks list uses the content type.
Press ENTER to continue...
Voir aussi
Référence
SPContentTypeCollection classe
SPContentTypeCollection - Membres
Microsoft.SharePoint - Espace de noms