Метод SPWeb.GetChanges
Получает все изменения, приведенные в журнале изменений текущего веб-сайта.
Пространство имен: Microsoft.SharePoint
Сборка: Microsoft.SharePoint (в Microsoft.SharePoint.dll)
Синтаксис
'Декларация
Public Function GetChanges As SPChangeCollection
'Применение
Dim instance As SPWeb
Dim returnValue As SPChangeCollection
returnValue = instance.GetChanges()
public SPChangeCollection GetChanges()
Возвращаемое значение
Тип: Microsoft.SharePoint.SPChangeCollection
Изменения.
Замечания
Общее число изменений, возвращаемых запросом от журнала изменений может быть очень большим. Для повышения производительности изменения возвращаются в пакетах до 2000. Эта перегрузка метода возвращает только первый пакет изменений записываются в журнал.
Чтобы получить все изменения, а не только первого пакета, вызовите этот метод в цикле, пока он возвращает коллекцию изменений 0, указывающий на то, что он достигнут конец журнала. Используйте свойство ChangeToken из последнего изменения первого пакета для получения второй партии и так далее, пока не будет получен пустой коллекции. Например GetChanges(SPChangeToken) см.
Примечание
По умолчанию журнал изменений ведется в течение 60 дней. Срок хранения можно настроить с помощью свойства ChangeLogRetentionPeriod .
Примеры
Пример является консольным приложением, которое использует метод GetChanges для создания файла журнала, содержащего сведения о первый пакет изменений из журнала изменений.
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
См. также
Справочные материалы
Пространство имен Microsoft.SharePoint