SPSite.GetChanges method (SPChangeToken)
Retorna uma coleção de alterações, começando em um ponto específico no log de alteração.
Namespace: Microsoft.SharePoint
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
'Declaração
Public Function GetChanges ( _
changeToken As SPChangeToken _
) As SPChangeCollection
'Uso
Dim instance As SPSite
Dim changeToken As SPChangeToken
Dim returnValue As SPChangeCollection
returnValue = instance.GetChanges(changeToken)
public SPChangeCollection GetChanges(
SPChangeToken changeToken
)
Parâmetros
changeToken
Type: Microsoft.SharePoint.SPChangeTokenUm objeto de SPChangeToken que especifica uma data e hora inicial. Uma exceção SPException é lançada se o token refere-se a um horário antes do início da atual log de alteração. Para iniciar o final do log de alterações, passe um token de a null reference (Nothing in Visual Basic) .
Valor retornado
Type: Microsoft.SharePoint.SPChangeCollection
Uma coleção de objetos SPChange que representam as alterações.
Comentários
Você pode obter um objeto SPChangeToken para passar como um argumento para esse método extraindo um da propriedade ChangeToken da última alteração retornada por uma chamada anterior do método GetChanges . Ou você pode usar o construtor de SPChangeToken para criar um novo token de alteração.
Se você construir um objeto de SPChangeToken a ser usada com este método, passe SPChangeCollection.CollectionScope.Site como o primeiro argumento do construtor, o valor da propriedade de SPSite.ID do objeto atual como o segundo argumento e um objeto DateTime como terceiro argumento.
Dica
Por padrão, o log de alterações retém dados por 60 dias. Você pode configurar o período de retenção, definindo a propriedade ChangeLogRetentionPeriod .
Examples
O exemplo a seguir é um aplicativo de console que demonstra como obter todas as alterações no registro. O programa executa um loop ao obter alterações em lotes e sai do loop quando ele recupera uma coleção com zero membros, significando que atingiu o final do log.
using System;
using Microsoft.SharePoint;
namespace Test
{
class ConsoleApp
{
static void Main(string[] args)
{
using (SPSite site = new SPSite("https://localhost"))
{
long total = 0;
SPChangeToken token = null;
// Get the first batch of changes.
SPChangeCollection changes= site.GetChanges(token);
// Loop until the end of the log is reached.
while (changes.Count > 0)
{
total += changes.Count;
foreach (SPChange change in changes)
{
string str = change.ChangeType.ToString();
Console.WriteLine(str);
}
changes= site.GetChanges(token);
token = changes.LastChangeToken;
}
Console.WriteLine("Total changes = {0:#,#}", total);
}
Console.Write("\nPress ENTER to continue...");
Console.ReadLine();
}
}
}
Imports System
Imports Microsoft.SharePoint
Module ConsoleApp
Sub Main()
Using site As SPSite = New SPSite("https://localhost")
Dim total As Long = 0
Dim token As SPChangeToken = Nothing
' Get the first batch of changes.
Dim changes As SPChangeCollection = site.GetChanges(token)
' Loop until the end of the log is reached.
While changes.Count > 0
total += changes.Count
For Each change As SPChange In changes
Dim str As String = change.ChangeType.ToString()
' Process change.
Console.WriteLine(str)
Next change
token = changes.LastChangeToken
changes = site.GetChanges(token)
End While
Console.WriteLine("Total changes = {0:#,#}", total)
End Using
Console.Write(vbCrLf + "Press ENTER to continue...")
Console.ReadLine()
End Sub
End Module
Ver também
Referência
Microsoft.SharePoint namespace