SPContentTypeCollection.BestMatch method
Pesquisa da coleção e retorna o identificador (ID) de tipo de conteúdo que seja a correspondência mais próxima para a identificação de tipo de conteúdo especificado.
Namespace: Microsoft.SharePoint
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
'Declaração
Public Function BestMatch ( _
contentTypeId As SPContentTypeId _
) As SPContentTypeId
'Uso
Dim instance As SPContentTypeCollection
Dim contentTypeId As SPContentTypeId
Dim returnValue As SPContentTypeId
returnValue = instance.BestMatch(contentTypeId)
public SPContentTypeId BestMatch(
SPContentTypeId contentTypeId
)
Parâmetros
contentTypeId
Type: Microsoft.SharePoint.SPContentTypeIdUma identificação de tipo de conteúdo correspondente.
Valor retornado
Type: Microsoft.SharePoint.SPContentTypeId
O valor da propriedade Id para o tipo de conteúdo com a correspondência mais próxima ao valor do conteúdo especificado, digite identificação. Se a pesquisa encontrar dois correspondências, a identificação do menor será retornada. Por exemplo, se 0x0101 é o argumento e a coleção contém 0x010109 e 0x01010901, o método retornará 0x010109.
Comentários
Use este método para determinar se uma coleção contém um filho de um tipo de conteúdo conhecido. Lembre-se, no entanto, que, quando um tipo de conteúdo de site é copiado para uma lista, o tipo de conteúdo na lista recebe uma nova identificação de tipo de conteúdo no seguinte formato.
site content type ID + "00" + 32-character hexadecimal GUID
Para obter mais informações, consulte Content Type IDs.
Dica
Se você deseja saber em qualquer lugar que um tipo de conteúdo é usado em todo um conjunto de sites, chame o método GetUsages .
Examples
O exemplo a seguir mostra um aplicativo de console que percorre as listas em um site da Web e determina se a coleção de tipo de conteúdo de cada lista contém um descendente de um tipo de conteúdo especificado.
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);
}
}
}
O aplicativo imprime a seguinte saída no console.
The Tasks list uses the content type.
Press ENTER to continue...
Ver também
Referência
SPContentTypeCollection members
Microsoft.SharePoint namespace