Compartilhar via


SyncFolderHierarchyType Classe

Definição

A SyncFolderHierarchyType classe representa uma solicitação para sincronizar uma hierarquia de pasta de cliente com o computador que está em execução Microsoft Exchange Server 2007.

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

Exemplos

O exemplo a seguir mostra como sincronizar uma hierarquia de pastas. Como a SyncState propriedade está definida, essa hierarquia de pastas já foi sincronizada antes. Essa operação SyncFolderHierarchy retornará todas as alterações feitas desde a chamada de sincronização representada pela SyncState propriedade. Essa chamada retornará todas as propriedades definidas pela forma da AllProperties pasta.

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

    // Identify the properties that are synchronized.
    FolderResponseShapeType shape = new FolderResponseShapeType();
    shape.BaseShape = DefaultShapeNamesType.AllProperties;

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

    // Add the synchronization state to the request. This
    // property should be null for the initial synchronization.
<span class="label">request</span>.SyncState = "H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/";

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

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

    foreach (ResponseMessageType rmt in rmta)
    {
        if (rmt.ResponseClass == ResponseClassType.Success)
        {
            SyncFolderHierarchyResponseMessageType sfhrmt = rmt as SyncFolderHierarchyResponseMessageType;

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

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

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

            // This identifies the type of change that occurred on a folder.
            ItemsChoiceType1 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 ItemsChoiceType1.Create:
                        SyncFolderHierarchyCreateOrUpdateType createdFolder = changes[count] as SyncFolderHierarchyCreateOrUpdateType;
                        // TODO: Handle the created folder.
                        if (createdFolder.Item is CalendarFolderType)
                        {
                            // TODO: Cast to calendar folder and handle properties.
                        }
                        else;
                            // TODO: Check and cast to SearchFolderType, TasksFolderType,
                            //       ContactsFolderType, or FolderType.
                        break;

                    case ItemsChoiceType1.Update:
                        SyncFolderHierarchyCreateOrUpdateType updatedFolder = changes[count] as SyncFolderHierarchyCreateOrUpdateType; ;
                        // TODO: Handle the updated folder.    
                        // TODO: Check and cast to one of the five folder types.
                        break;

                    case ItemsChoiceType1.Delete:
                        SyncFolderHierarchyDeleteType deletedFolder = changes[count] as SyncFolderHierarchyDeleteType;
                        // TODO: Get the identifier of the deleted folder.
                        break;
                }
            }
        }
    }
}

A SyncState propriedade retornada na resposta deve ser salva para solicitações de sincronização posteriores. Lembre-se também de que as pastas retornadas na resposta devem ser lançadas para o tipo de pasta apropriado para que o aplicativo cliente possa acessar todas as propriedades que estão disponíveis para cada tipo de pasta.

Importante: se as atualizações forem retornadas, o aplicativo cliente deverá comparar a diferença entre as pastas na resposta e no cliente para determinar quais alterações ocorreram.

Como todos os objetos de alteração não têm o mesmo tipo base, uma matriz de objeto é retornada.

Comentários

Para sincronizar os itens em cada pasta, use o SyncFolderItemsType objeto proxy.

Construtores

SyncFolderHierarchyType()

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

Propriedades

FolderShape

A FolderShape propriedade obtém ou define a forma da pasta de sincronização que descreve quais propriedades são retornadas na resposta. 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. Essa propriedade é opcional. Esta é uma propriedade de leitura/gravação.

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