SPContentTypeCollection.BestMatch-Methode
Sucht in der Auflistung und gibt den Inhaltstyp-Bezeichner (ID), der die nächste entspricht der angegebene Inhaltstyp-ID
Namespace: Microsoft.SharePoint
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
'Declaration
Public Function BestMatch ( _
contentTypeId As SPContentTypeId _
) As SPContentTypeId
'Usage
Dim instance As SPContentTypeCollection
Dim contentTypeId As SPContentTypeId
Dim returnValue As SPContentTypeId
returnValue = instance.BestMatch(contentTypeId)
public SPContentTypeId BestMatch(
SPContentTypeId contentTypeId
)
Parameter
contentTypeId
Typ: Microsoft.SharePoint.SPContentTypeIdEine Inhaltstyp-ID entsprechen.
Rückgabewert
Typ: Microsoft.SharePoint.SPContentTypeId
Der Wert der Eigenschaft Id für den Inhaltstyp mit der größten Übereinstimmung auf den Wert des angegebenen Inhalts Typ-ID Wenn die Suche zwei Übereinstimmungen gefunden werden, wird die kürzere ID zurückgegeben. Wenn 0 x 0101 das Argument ist, und die Auflistung sowohl 0x010109 als auch 0x01010901 enthält, gibt die Methode 0x010109.
Hinweise
Verwenden Sie diese Methode, um festzustellen, ob eine Auflistung ein untergeordnetes Element eines bekannten Inhaltstyps enthält. Beachten Sie jedoch, dass beim Kopieren eines Websiteinhaltstyps zu einer Liste der Inhaltstyp in der Liste eine neuen Inhaltstyp-ID in der folgenden Form wird beibehalten.
site content type ID + "00" + 32-character hexadecimal GUID
Weitere Informationen finden Sie unter Content Type IDs.
Tipp
Wenn überall wissen, dass ein Inhaltstyp in einer Websitesammlung verwendet werden soll, rufen Sie die Methode GetUsages .
Beispiele
Das folgende Beispiel zeigt eine Konsolenanwendung, die die Listen in einer Website durchlaufen, und bestimmt, ob die Auflistung Inhaltstyp jeder Liste einen Nachfolger von einem angegebenen Inhaltstyp enthält.
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);
}
}
}
Die folgende Ausgabe wird in der Konsole angezeigt.
The Tasks list uses the content type.
Press ENTER to continue...
Siehe auch
Referenz
SPContentTypeCollection Klasse
SPContentTypeCollection-Member
Microsoft.SharePoint-Namespace