Поделиться через


Конструктор SPChangeToken (SPChangeCollection.CollectionScope, Guid, DateTime)

Инициализирует новый экземпляр класса SPChangeToken с указанной базовой коллекции область, соответствующий идентификатор объекта (ID) и время изменения.

Пространство имен:  Microsoft.SharePoint
Сборка:  Microsoft.SharePoint (в Microsoft.SharePoint.dll)

Синтаксис

'Декларация
Public Sub New ( _
    scope As SPChangeCollection.CollectionScope, _
    scopeId As Guid, _
    changeTime As DateTime _
)
'Применение
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
)

Параметры

  • scope
    Тип: Microsoft.SharePoint.SPChangeCollection.CollectionScope

    Область маркер изменений, который может быть список, веб-узла, семейства веб-сайтов или содержимого базы данных.

  • changeTime
    Тип: System.DateTime

    Дата и время изменения. Время в журнале изменений указываются в формате всеобщего скоординированного времени (UTC).

Замечания

Маркеры изменения характерные для определенного списка, веб-узла, семейства веб-сайтов или содержимого базы данных. При создании маркера изменения значения, которые используются в первых двух параметров конструктора должно соответствовать объект, программирование. Например если планируется передать маркер изменений метод GetChanges объекта SPList , необходимо указать как значение свойства ID список как scopeIdи scopeSPChangeCollection.CollectionScope.List .

Примеры

Следующий пример является консольным приложением, которое создает два маркера изменения таким образом, он может выполнить запрос журнала изменений для семейства веб-сайтов в семидневный период изменений.

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

См. также

Справочные материалы

SPChangeToken класс

Элементы SPChangeToken

Перегрузка SPChangeToken

Пространство имен Microsoft.SharePoint