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


Свойство SPChangeTokenCollection.Item (Guid)

Получает маркер изменений с указанным GUID из коллекции Изменение маркеров объектов.

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

Синтаксис

'Декларация
Public ReadOnly Default Property Item ( _
    scopeId As Guid _
) As SPChangeToken
    Get
'Применение
Dim instance As SPChangeTokenCollection
Dim scopeId As Guid
Dim value As SPChangeToken

value = instance(scopeId)
public SPChangeToken this[
    Guid scopeId
] { get; }

Параметры

  • scopeId
    Тип: System.Guid

    System.Guid , идентифицирующее маркер изменений.

Значение свойства

Тип: Microsoft.SharePoint.SPChangeToken
Объект SPChangeToken , представляющий маркер изменений.

Замечания

Если маркер изменений с указанным GUID не существует в коллекции, это свойство возвращает пустая ссылка (Nothing в Visual Basic).

Каждый маркер изменений в коллекции индексируется по значению свойства ScopeId маркером. Значение этого свойства равным значению свойства целевого объекта для изменения маркера Id . Таким образом экземпляр класса SPChangeTokenCollection содержит маркеры изменения для каждой базы данных контента в текущем веб-приложении, можно использовать идентификатор GUID, который определяет конкретных баз данных содержания как индекс в коллекции и получить маркер, который можно использовать для получения изменений, содержимого базы данных.

Примеры

Следующий пример является консольным приложением, которое создает коллекцию баз данных контента и соответствующие коллекции маркеров изменения. Приложение получает идентификатор GUID, который определяет каждую базу данных и использует его в качестве индекса в коллекции маркеров. Затем он использует маркер, он извлекает запрос журнала изменений для базы данных, к которому применяется маркер.

using System;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;

namespace Test
{
   class ConsoleApp
   {
      static void Main(string[] args)
      {
         // Get a collection of content databases
         SPWebApplication wa = SPWebApplication.Lookup(new Uri("https://localhost"));
         SPContentDatabaseCollection dbs = wa.ContentDatabases;

         // Create a collection of change tokens with
         // one token for each database. Each token marks the
         // current end point of the change log for a database.
         SPChangeTokenCollection tokens = new SPChangeTokenCollection();
         foreach (SPContentDatabase db in dbs)
            tokens.Add(db.CurrentChangeToken);

         // Do something that changes objects stored
         // within each database
         // .
         // .
         // .

         // Get any changes that have taken place
         long total = 0;
         foreach (SPContentDatabase db in dbs)
         {
            // Get a GUID for the db.
            // Note that a cast is needed to access the Id property.
            SPPersistedObject po = db as SPPersistedObject;
            Guid id = po.Id;

            // Use the GUID to get a token for the db
            SPChangeToken startingToken = tokens[id];
            
            // Get the first batch of changes 
            SPChangeCollection changes = db.GetChanges(startingToken);

            // Loop until there are no more changes 
            while (changes.Count > 0)
            { 
               // Accumulate a total
               total += changes.Count;

               // Go get another batch
               startingToken = changes.LastChangeToken;
               changes = db.GetChanges(startingToken);
            }
         }
         Console.WriteLine("Total changes: {0}", total.ToString());
         Console.Write("\nPress ENTER to continue...");
         Console.ReadLine();
      }
   }
}
Imports System
Imports Microsoft.SharePoint
Imports Microsoft.SharePoint.Administration

Module ConsoleApp
   Sub Main()
      ' Get a collection of content databases
      Dim wa As SPWebApplication = SPWebApplication.Lookup(New Uri("https://localhost"))
      Dim dbs As SPContentDatabaseCollection = wa.ContentDatabases

      ' Create a collection of change tokens with
      ' one token for each database. Each token marks the
      ' current end point of the change log for a database.
      Dim tokens As SPChangeTokenCollection = New SPChangeTokenCollection()
      Dim db As SPContentDatabase
      For Each db In dbs
         tokens.Add(db.CurrentChangeToken)
      Next

      ' Do something that changes objects stored
      ' within each database
      ' .
      ' .
      ' .

      ' Get any changes that have taken place
      Dim total As Long = 0
      For Each db In dbs
         ' Get a GUID for the db.
         ' Note that a cast is needed to access the Id property.
         Dim po As SPPersistedObject = CType(db, SPPersistedObject)
         Dim id As Guid = po.Id

         ' Use the GUID to get a token for the db
         Dim startingToken As SPChangeToken = tokens(id)

         ' Get the first batch of changes
         Dim changes As SPChangeCollection = db.GetChanges(startingToken)

         ' Loop until there are no more changes
         While (changes.Count > 0)

            ' Accumulate a total
            total += changes.Count

            ' Go get another batch
            startingToken = changes.LastChangeToken
            changes = db.GetChanges(startingToken)
         End While
      Next db

      Console.WriteLine("Total changes: {0}", total.ToString())
      Console.Write(vbCrLf + "Press ENTER to continue...")
      Console.ReadLine()

   End Sub
End Module

См. также

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

SPChangeTokenCollection класс

Элементы SPChangeTokenCollection

Перегрузка Item

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

ScopeId