Freigeben über


SPChangeToken-Konstruktor (SPChangeCollection.CollectionScope, Guid, DateTime)

Initialisiert eine neue Instanz der Klasse mit einer angegebenen Änderung den Bereich, entsprechende Objektbezeichner (ID) und Zeit für den SPChangeToken .

Namespace:  Microsoft.SharePoint
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

Syntax

'Declaration
Public Sub New ( _
    scope As SPChangeCollection.CollectionScope, _
    scopeId As Guid, _
    changeTime As DateTime _
)
'Usage
Dim scope As SPChangeCollection.CollectionScope
Dim scopeId As Guid
Dim changeTime As DateTime

Dim instance As New SPChangeToken(scope, scopeId, _
    changeTime)
public SPChangeToken(
    SPChangeCollection.CollectionScope scope,
    Guid scopeId,
    DateTime changeTime
)

Parameter

  • changeTime
    Typ: System.DateTime

    Das Datum und Uhrzeit der Änderung. Wie oft im Änderungsprotokoll werden im Format (Coordinated Universal Time, UTC) angegeben.

Hinweise

Änderungstoken sind spezifisch für eine bestimmte Liste, Website, Websitesammlung oder Inhaltsdatenbank. Wenn Sie ein Änderungstoken erstellen, sollte die Werte, die in den ersten beiden Parameter des Konstruktors verwendet das Objekt entsprechen, dem Sie für die Programmierung sind. Wenn Sie beabsichtigen, das Änderungstoken an die GetChanges -Methode eines Objekts SPList übergeben, müssen Sie SPChangeCollection.CollectionScope.List als die scope und den Wert der Eigenschaft ID Liste als die scopeIdangeben.

Beispiele

Das folgende Beispiel ist eine Konsolenanwendung, die zwei Änderungstoken erstellt wird, damit das Änderungsprotokoll nach Änderungen an einer Websitesammlung während eines Zeitraums von sieben Tagen abgefragt werden kann.

using System;
using Microsoft.SharePoint;

namespace Test
{
   class ConsoleApp
   {
      static void Main(string[] args)
      {
         using (SPSite siteCollection = new SPSite("https://localhost"))
         {
            // Create a query.
            SPChangeQuery query = new SPChangeQuery(true, true);

            // Create a change token for the start.
            DateTime startTime = new DateTime(2009, 6, 1);
            query.ChangeTokenStart = new SPChangeToken(SPChangeCollection.CollectionScope.Site,
                                                       siteCollection.ID,
                                                       startTime);
            // Create a change token for the end.
            query.ChangeTokenEnd = new SPChangeToken(SPChangeCollection.CollectionScope.Site,
                                                     siteCollection.ID,
                                                     startTime.AddDays(6));

            // Specify the number of changes per round trip.
            query.FetchLimit = 1000;
            // Keep a running total.
            long total = 0;

            while (true)
            {
               SPChangeCollection changes = siteCollection.GetChanges(query);

               total += changes.Count;

               foreach (SPChange change in changes)
               {
                  Console.WriteLine("\nDate: {0}", change.Time.ToShortDateString());
                  Console.WriteLine("Change subclass: {0}", change.GetType().ToString());
                  Console.WriteLine("Change type: {0}", change.ChangeType);
               }

               // Break out of the loop if we have the last batch.
               if (changes.Count < query.FetchLimit)
                  break;
               // Otherwise, go get another batch.
               query.ChangeTokenStart = changes.LastChangeToken;
            }

            Console.WriteLine("\nTotal changes = {0:#,#}", 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")

         ' Create a query
         Dim query As New SPChangeQuery(True, True)

         ' Create a change token for the start.
         Dim startTime As New DateTime(2009, 6, 1)
         query.ChangeTokenStart = New SPChangeToken(SPChangeCollection.CollectionScope.Site, _
                                                    siteCollection.ID, _
                                                    startTime)
         ' Create a change token for the end.
         query.ChangeTokenEnd = New SPChangeToken(SPChangeCollection.CollectionScope.Site, _
                                                  siteCollection.ID, _
                                                  startTime.AddDays(6))

         ' Specify the number of changes per round trip.
         query.FetchLimit = 1000

         ' Keep a running total.
         Dim total As Long = 0


         While True

            Dim changes As SPChangeCollection = siteCollection.GetChanges(query)

            total += changes.Count

            For Each change As SPChange In changes

               Console.WriteLine(vbCrLf + "Date: {0}", change.Time.ToShortDateString())
               Console.WriteLine("Change subclass: {0}", change.GetType().ToString())
               Console.WriteLine("Change type: {0}", change.ChangeType)

            Next change

            ' Break out of loop if we have the last batch.
            If changes.Count < query.FetchLimit Then
               Exit While
            End If

            ' Otherwise, go get another batch.
            query.ChangeTokenStart = changes.LastChangeToken

         End While

         Console.WriteLine(vbCrLf + "Total changes = {0:#,#}", total)

      End Using

      Console.Write(vbCrLf + "Press ENTER to continue...")
      Console.ReadLine()

   End Sub
End Module

Siehe auch

Referenz

SPChangeToken Klasse

SPChangeToken-Member

SPChangeToken-Überladung

Microsoft.SharePoint-Namespace