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.
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
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 < 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. |