del método SPWeb.GetChanges
Obtiene todos los cambios que se enumeran en el registro de cambios actual para el sitio Web.
Espacio de nombres: Microsoft.SharePoint
Ensamblado: Microsoft.SharePoint (en Microsoft.SharePoint.dll)
Sintaxis
'Declaración
Public Function GetChanges As SPChangeCollection
'Uso
Dim instance As SPWeb
Dim returnValue As SPChangeCollection
returnValue = instance.GetChanges()
public SPChangeCollection GetChanges()
Valor devuelto
Tipo: Microsoft.SharePoint.SPChangeCollection
Los cambios.
Comentarios
El número total de cambios devueltos por una consulta en el registro de cambios puede ser muy grande. Por motivos de rendimiento, los cambios se devuelven en lotes de hasta 2000. Este método de sobrecarga devuelve sólo el primer lote de cambios se registra en el registro.
Para obtener todos los cambios en lugar de sólo el primer lote, llamar a este método en un bucle hasta que devuelve una colección con cambios 0, lo que significa que ha alcanzado el final del registro. Utilice la propiedad ChangeToken desde el último cambio de la primera sección para obtener la segunda por lotes y así sucesivamente, hasta que obtenga una colección vacía. Para obtener un ejemplo, vea el método GetChanges(SPChangeToken) .
Nota
De forma predeterminada, el registro de cambios conserva los datos durante 60 días. Puede configurar el período de retención estableciendo la propiedad ChangeLogRetentionPeriod .
Ejemplos
El ejemplo es una aplicación de consola que usa el método GetChanges para crear un archivo de registro que contiene información sobre el primer lote de cambios que aparecen en el registro de cambios.
using System;
using System.IO;
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;
string fileName = "ChangeLog.txt";
StreamWriter writer = File.AppendText(fileName);
SPChangeCollection changes = webSite.GetChanges();
foreach (SPChange change in changes)
{
writer.WriteLine( "\r\nDate: {0}", timeZone.UTCToLocalTime(change.Time).ToString());
writer.WriteLine("Object type: {0}", change.GetType().ToString());
writer.WriteLine("Change type: {0}", change.ChangeType);
}
writer.WriteLine("\r\nTotal changes = {0:#,#}", changes.Count);
writer.Flush();
writer.Close();
Console.WriteLine("{0} changes written to {1}", changes.Count, fileName);
}
}
Console.Write("\nPress ENTER to continue...");
Console.ReadLine();
}
}
}
Imports System
Imports System.IO
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 fileName As String = "ChangeLog.txt"
Dim writer As StreamWriter = File.AppendText(fileName)
Dim changes As SPChangeCollection = webSite.GetChanges()
For Each change As SPChange In changes
writer.WriteLine(vbCrLf + "Date: {0}", timeZone.UTCToLocalTime(change.Time).ToString())
writer.WriteLine("Object type: {0}", change.GetType().ToString())
writer.WriteLine("Change type: {0}", change.ChangeType)
Next change
writer.WriteLine(vbCrLf + "Total changes = {0:#,#}", changes.Count)
writer.Flush()
writer.Close()
Console.WriteLine("{0} changes written to {1}", changes.Count, fileName)
End Using
End Using
Console.Write(vbCrLf + "Press ENTER to continue...")
Console.ReadLine()
End Sub
End Module
Vea también
Referencia
Espacio de nombres Microsoft.SharePoint