SPWeb.GetChanges-Methode (SPChangeToken)
Ruft ab, die Änderungen, die einen angegebenen Punkt im Änderungsprotokoll ab.
Namespace: Microsoft.SharePoint
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
'Declaration
Public Function GetChanges ( _
changeToken As SPChangeToken _
) As SPChangeCollection
'Usage
Dim instance As SPWeb
Dim changeToken As SPChangeToken
Dim returnValue As SPChangeCollection
returnValue = instance.GetChanges(changeToken)
public SPChangeCollection GetChanges(
SPChangeToken changeToken
)
Parameter
changeToken
Typ: Microsoft.SharePoint.SPChangeTokenDie Position in der Änderung Protokoll beginnend an dem die Änderungen zurückgegeben werden.
Rückgabewert
Typ: Microsoft.SharePoint.SPChangeCollection
Die Änderungen, die seit der Speicherort im Änderungsprotokoll auf der Website vorgenommen wurden durch changeTokenangegeben.
Ausnahmen
Ausnahme | Bedingung |
---|---|
SPException | changeToken ist Null . |
Hinweise
Wenn Sie ein SPChangeToken -Objekt, das an diese Methode als Argument übergeben möchten, ein von der ChangeToken -Eigenschaft der letzten Änderung von einem vorherigen Aufruf dieser Methode zurückgegebenen zu extrahieren. Oder verwenden Sie den SPChangeToken -Konstruktor zum Erstellen einer neuen Änderungstoken.
Hinweis
Standardmäßig behält das Änderungsprotokoll für 60 Tage Daten. Um den Standard-Aufbewahrungszeitraum zu ändern, legen Sie die ChangeLogRetentionPeriod -Eigenschaft.
Beispiele
Im folgende Beispiel wird eine Konsolenanwendung, die auf alle Änderungen in das Protokoll abrufen veranschaulicht. Das Programm beim Abrufen von Änderungen in den Reihen durchlaufen und die Schleife bricht, wenn es ruft eine Auflistung mit 0 Mitglieder, womit angezeigt wird, dass sie das Ende des Protokolls erreicht wurde.
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.RootWeb)
{
SPTimeZone timeZone = webSite.RegionalSettings.TimeZone;
long total = 0;
// Start with a null token so we take changes
// from the beginning of the log
SPChangeToken token = null;
// Get the first batch of changes
SPChangeCollection changes = webSite.GetChanges(token);
// Loop until we get zero changes
while (changes.Count > 0)
{
total += changes.Count;
foreach (SPChange change in changes)
{
// Process the change
Console.WriteLine("\nDate: {0}", timeZone.UTCToLocalTime(change.Time).ToString());
Console.WriteLine("Type of change: {0}", change.ChangeType.ToString());
Console.WriteLine("Object changed: {0}", change.GetType().ToString());
}
// Go get another batch
token = changes.LastChangeToken;
changes = webSite.GetChanges(token);
}
Console.WriteLine("\nTotal = {0:#,#} changes", total);
}
}
Console.Write("\nPress ENTER to continue...");
Console.ReadLine();
}
}
}
Imports System
Imports Microsoft.SharePoint
Module ConsoleApp
Sub Main()
Using siteCollection As SPSite = New SPSite("https://localhost")
Using webSite As SPWeb = siteCollection.RootWeb
Dim timeZone As SPTimeZone = webSite.RegionalSettings.TimeZone
Dim total As Long = 0
' Start with a null token so we take changes
' from the beginning of the log
Dim token As SPChangeToken = Nothing
' Get the first batch of changes
Dim changes As SPChangeCollection = webSite.GetChanges(token)
' Loop until we get zero changes
While changes.Count > 0
total += changes.Count
For Each change As SPChange In changes
' Process the change
Console.WriteLine(vbCrLf + "Date: {0}", timeZone.UTCToLocalTime(change.Time).ToString())
Console.WriteLine("Type of change: {0}", change.ChangeType.ToString())
Console.WriteLine("Object changed: {0}", change.GetType().ToString())
Next change
' Go get another batch
token = changes.LastChangeToken
changes = webSite.GetChanges(token)
End While
Console.WriteLine(vbCrLf + "Total = {0:#,#} changes", total)
End Using
End Using
Console.Write(vbCrLf + "Press ENTER to continue...")
Console.ReadLine()
End Sub
End Module
Siehe auch
Referenz
Microsoft.SharePoint-Namespace