SPChangeCollection.Count property
Obtém o número de alterações na coleção.
Namespace: Microsoft.SharePoint
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
'Declaração
Public Overrides ReadOnly Property Count As Integer
Get
'Uso
Dim instance As SPChangeCollection
Dim value As Integer
value = instance.Count
public override int Count { get; }
Property value
Type: System.Int32
Um inteiro de 32 bits que indica o número de alterações.
Implements
Examples
O exemplo a seguir é um aplicativo de console que consulta o log de alteração de atribuições de função que foram adicionados a um site da Web. O aplicativo chama o método SPWeb.GetChanges em um loop, recuperando coleções de alteração sucessiva até que seja atingido o fim do log de alteração. Durante esse processo, o aplicativo mantém uma execução total, adicionando o valor da propriedade de Count da coleção atual a uma variável. Quando o último lote de alterações terem sido recuperado, o aplicativo imprime o total no console.
using System;
using Microsoft.SharePoint;
namespace Test
{
class ConsoleApp
{
static void Main(string[] args)
{
using (SPSite siteCollection = new SPSite("https://localhost"))
{
using (SPWeb webSite = siteCollection.OpenWeb())
{
// Get a list.
SPList list = webSite.Lists[0];
// Construct a query.
SPChangeQuery query = new SPChangeQuery(false, // limit object types
false); // limit change types
// Specify the object type.
query.Item = true;
// Specify change types.
query.Add = true;
query.Delete = true;
query.Update = true;
SPTimeZone timeZone = webSite.RegionalSettings.TimeZone;
int total = 0;
// Loop until we reach the end of the log.
while (true)
{
SPChangeCollection changes = list.GetChanges(query);
total += changes.Count;
// Print info about each change to the console.
foreach (SPChangeItem change in changes)
{
// Get the item name.
string itemName = String.Empty;
SPListItem item = null;
try
{
item = list.GetItemByUniqueId(change.UniqueId);
itemName = item.Name;
}
catch (ArgumentException)
{
itemName = "Unknown";
}
Console.WriteLine("\nDate: {0}",
timeZone.UTCToLocalTime(change.Time).ToString());
Console.WriteLine("Change: {0}", change.ChangeType);
Console.WriteLine("Item: {0}", itemName);
}
// Break out of 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 of {0} changes to {1} list", total, list.Title);
}
}
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")
Using webSite As SPWeb = siteCollection.RootWeb
' Construct a query
Dim query As New SPChangeQuery(False, False)
' object type
query.Web = True
' change type
query.RoleAssignmentAdd = True
Dim total As Long = 0
While True
Dim changes As SPChangeCollection = webSite.GetChanges(query)
total += changes.Count
' Break out of the loop when we fetch the last batch of changes
If changes.Count < query.FetchLimit Then
Exit While
End If
' Go get another batch of changes starting where we left off
query.ChangeTokenStart = changes.LastChangeToken
End While
Console.WriteLine("{0} role assignments added", total)
End Using
End Using
Console.Write(vbCrLf + "Press ENTER to continue...")
Console.ReadLine()
End Sub
End Module
Ver também
Referência
Microsoft.SharePoint namespace