Compartilhar via


SyncFolderItemsType Classe

Definição

A SyncFolderItemsType classe representa uma solicitação para sincronizar itens em uma pasta com o computador que está executando Microsoft Exchange Server 2007.

public ref class SyncFolderItemsType : ExchangeWebServices::BaseRequestType
public class SyncFolderItemsType : ExchangeWebServices.BaseRequestType
Public Class SyncFolderItemsType
Inherits BaseRequestType
Herança
SyncFolderItemsType

Exemplos

O exemplo a seguir mostra como sincronizar os itens na pasta Caixa de Entrada. Como a SyncState propriedade está definida, os itens na pasta já foram sincronizados antes. Essa operação SyncFolderItems retornará todas as alterações feitas desde a chamada de sincronização representada pela SyncState propriedade. Essa chamada retornará um máximo de 100 itens, que são representados por seus identificadores de item e seu campo de assunto, se aplicável. Também esteja ciente de que essa chamada ignora um único item.

static void SyncFolderItems(ExchangeServiceBinding esb)
{ 
    // Create the request.
    SyncFolderItemsType <span class="label">request</span> = new SyncFolderItemsType();

    // Identify the properties that are synchronized.
    ItemResponseShapeType shape = new ItemResponseShapeType();
    shape.BaseShape = DefaultShapeNamesType.IdOnly;
    PathToUnindexedFieldType itemSubject = new PathToUnindexedFieldType();
    itemSubject.FieldURI = UnindexedFieldURIType.itemSubject;
    shape.AdditionalProperties = new BasePathToElementType[1];
    shape.AdditionalProperties[0] = itemSubject;

    // Add the synchronized properties to the request.
<span class="label">request</span>.ItemShape = shape;

    // Define the maximum number of changes returned in the response.
<span class="label">request</span>.MaxChangesReturned = 100;

    // Identify the folder to synchronize.
    DistinguishedFolderIdType inbox = new DistinguishedFolderIdType();
    inbox.Id = DistinguishedFolderIdNameType.inbox;
<span class="label">request</span>.SyncFolderId = new TargetFolderIdType();
<span class="label">request</span>.SyncFolderId.Item = inbox;

    // Add the synchronization state to the request.
<span class="label">request</span>.SyncState = "wQ3YnacHwN3pRYZFQ1jv7HwSZzl/z/wESqUej1h8AAA==";

    // Identify which items should not be synchronized.
<span class="label">request</span>.Ignore = new ItemIdType[1];
<span class="label">request</span>.Ignore[0] = new ItemIdType();
<span class="label">request</span>.Ignore[0].Id = "AAAlAE1BQG1haW5lcmNvbnRvc";
<span class="label">request</span>.Ignore[0].ChangeKey = "CQAAABYAAAAMoHzy8/QATr21qKEgNudZAG6ns+MG";

    // Send the request and get the response.
    SyncFolderItemsResponseType response = esb.SyncFolderItems(<span class="label">request</span>);

    ArrayOfResponseMessagesType aormt = response.ResponseMessages;
    ResponseMessageType[] rmta = aormt.Items;

    if (rmta[0].ResponseClass == ResponseClassType.Success)
    {
        // Cast the response message to the appropriate type.
        SyncFolderItemsResponseMessageType sfirmt = rmta[0] as SyncFolderItemsResponseMessageType;

        // Get the sync state string to use in later synchronization calls.
        string syncState = sfirmt.SyncState;

        // Get the array of changes that are returned in the response.
        SyncFolderItemsChangesType changeArray = sfirmt.Changes;

        // This contains the array of item changes.
        object[] changes = changeArray.Items;

        // This identifies the type of change that occurred on an item.
        ItemsChoiceType2 changeType;

        for (int count = 0; count &lt; changes.Length; count++)
        { 
            // This identifies the type of change that is represented by the objects
            // in the changes object[].
            changeType = changeArray.ItemsElementName[count];

            // Check for the change type of each folder that is returned in the response.
            switch (changeType)
            {
                case ItemsChoiceType2.Create:
                    SyncFolderItemsCreateOrUpdateType createdItem = changes[count] as SyncFolderItemsCreateOrUpdateType;
                    // TODO: Handle the created item.
                    if (createdItem.Item is TaskType)
                    {
                        // TODO: Cast to task item and handle properties.
                    }
                    else;
                    // TODO: Check and cast for MeetingCancellationMessageType, MeetingResponseMessageType,
                    // MeetingRequestMessageType, MeetingMessageType, DistributionListType, ContactItemType,
                    // CalendarItemType, MessageType, or ItemType types.
                    break;

                case ItemsChoiceType2.Update:
                    SyncFolderItemsCreateOrUpdateType updatedItem = changes[count] as SyncFolderItemsCreateOrUpdateType;
                    // TODO: Handle the updated item.
                    // TODO: Check and cast to one of the 10 item types.
                    break;

                case ItemsChoiceType2.ReadFlagChange:
                    SyncFolderItemsCreateOrUpdateType changeReadFlag = changes[count] as SyncFolderItemsCreateOrUpdateType;
                    // TODO: Check and cast to one of the 10 item types.
                    // TODO: Update the read flag on the local item.
                    break;
                case ItemsChoiceType2.Delete:
                    SyncFolderItemsDeleteType deletedItem = changes[count] as SyncFolderItemsDeleteType;
                    // TODO: Get the identifier of the deleted item.
                    break;
            }
        }
    }
}

Comentários

Para sincronizar a hierarquia de pastas, use o SyncFolderHierarchyType objeto proxy.

Construtores

SyncFolderItemsType()

O SyncFolderItemsType construtor inicializa uma nova instância da SyncFolderItemsType classe.

Propriedades

Ignore

A Ignore propriedade obtém ou define uma matriz de itens a serem ignoradas para sincronização. Essa propriedade é opcional. Esta é uma propriedade de leitura/gravação.

ItemShape

A ItemShape propriedade obtém ou define a forma que descreve quais propriedades são retornadas na resposta. Esta propriedade é obrigatória. Esta é uma propriedade de leitura/gravação.

MaxChangesReturned

A MaxChangesReturned propriedade obtém ou define o número máximo de alterações que podem ser retornadas em uma resposta de sincronização. Esta propriedade é obrigatória. Esta é uma propriedade de leitura/gravação.

SyncFolderId

A SyncFolderId propriedade obtém ou define a identidade da pasta que contém os itens a serem sincronizados. Esta propriedade é obrigatória. Esta é uma propriedade de leitura/gravação.

SyncScope

A SyncScope propriedade obtém ou define um dos valores de SyncFolderItemsScopeType enumeração que especifica se apenas itens ou itens e informações associadas à pasta são retornados em uma resposta de sincronização.

SyncScopeSpecified

A SyncScopeSpecified propriedade obtém ou define um valor booliano que especifica se a SyncScope propriedade é serializada na solicitação SOAP. Essa propriedade será necessária se a SyncScope propriedade for especificada.

SyncState

A SyncState propriedade obtém ou define o identificador de estado de sincronização. Essa propriedade é opcional com ressalvas. Esta é uma propriedade de leitura/gravação.

Aplica-se a