SyncFolderHierarchyType Classe

Definição

O SyncFolderHierarchyType classe representa uma solicitação para sincronizar uma hierarquia de pastas do cliente com o computador que está executando 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. Porque o SyncState propriedade estiver definida, essa hierarquia de pasta foi sincronizada antes. Essa operação SyncFolderHierarchy retornará todas as alterações feitas desde a sincronização de chamada que é representada pelo SyncState propriedade. Essa chamada retornará todas as propriedades que são definidas pelo AllProperties forma da 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;
                }
            }
        }
    }
}

o SyncState propriedade retornada na resposta deve ser salvo para solicitações posteriores de sincronização. Além disso, lembre-se de que as pastas que são retornadas na resposta devem ser convertidas para o tipo de pasta apropriada para que o aplicativo cliente possa acessar todas as propriedades que estão disponíveis para cada tipo de pasta.

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

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

Comentários

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

Construtores

SyncFolderHierarchyType()

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

Propriedades

FolderShape

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

SyncFolderId

O 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

O SyncState propriedade obtém ou definir o identificador de estado de sincronização. Essa propriedade é opcional com advertências. Esta é uma propriedade de leitura/gravação.

Aplica-se a