SPChangeTokenCollection.Item-Eigenschaft (Guid)
Ruft das Änderungstoken mit der angegebenen GUID aus der Auflistung von token Objekte ab.
Namespace: Microsoft.SharePoint
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
'Declaration
Public ReadOnly Default Property Item ( _
scopeId As Guid _
) As SPChangeToken
Get
'Usage
Dim instance As SPChangeTokenCollection
Dim scopeId As Guid
Dim value As SPChangeToken
value = instance(scopeId)
public SPChangeToken this[
Guid scopeId
] { get; }
Parameter
scopeId
Typ: System.GuidEine System.Guid , die das Änderungstoken identifiziert.
Eigenschaftswert
Typ: Microsoft.SharePoint.SPChangeToken
Ein SPChangeToken -Objekt, das Änderungstoken darstellt.
Hinweise
Wenn ein Änderungstoken, mit der angegebenen GUID nicht in der Auflistung vorhanden ist, gibt diese Eigenschaft ein Nullverweis (Nothing in Visual Basic).
Jedes Änderungstoken in einer Sammlung wird durch den Wert der ScopeId -Eigenschaft des Tokens indiziert. Der Wert dieser Eigenschaft ist identisch mit dem Wert der Eigenschaft Id des Ziels für das Änderungstoken. Daher enthält eine Instanz der Klasse SPChangeTokenCollection Token für jede Inhaltsdatenbank in der aktuellen Webanwendung ändern, können Sie diese verwenden der GUID, die eine bestimmte Inhaltsdatenbank als Index in der Auflistung bezeichnet und erhalten ein Token, das Sie zum Abrufen dieser Inhaltsdatenbank Änderungen verwenden können.
Beispiele
Im folgende Beispiel ist eine Konsolenanwendung, die eine Auflistung von Inhaltsdatenbanken und eine entsprechende Änderung Tokens-Auflistung erstellt. Die Anwendung ruft die GUID, die jede Datenbank identifiziert und es als Index in der Auflistung von Token verwendet. Anschließend verwendet das Token, das das Änderungsprotokoll für die Datenbank abgefragt werden soll, das Token gilt, abgerufen.
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
Siehe auch
Referenz
SPChangeTokenCollection Klasse
SPChangeTokenCollection-Member