SyncFolderHierarchyType Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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 < 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. |