Compartir a través de


SyncFolderItemsType Clase

Definición

La SyncFolderItemsType clase representa una solicitud para sincronizar elementos de una carpeta con el equipo que ejecuta Microsoft Exchange Server 2007.

public ref class SyncFolderItemsType : ExchangeWebServices::BaseRequestType
public class SyncFolderItemsType : ExchangeWebServices.BaseRequestType
Public Class SyncFolderItemsType
Inherits BaseRequestType
Herencia
SyncFolderItemsType

Ejemplos

En el ejemplo siguiente se muestra cómo sincronizar los elementos de la carpeta Bandeja de entrada. Dado que la SyncState propiedad está establecida, los elementos de la carpeta se han sincronizado antes. Esta operación SyncFolderItems devolverá todos los cambios realizados desde la llamada de sincronización representada por la SyncState propiedad . Esta llamada devolverá un máximo de 100 elementos, representados por sus identificadores de elemento y su campo de asunto, si procede. Tenga en cuenta también que esta llamada omite un solo elemento.

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;
            }
        }
    }
}

Comentarios

Para sincronizar la jerarquía de carpetas, use el SyncFolderHierarchyType objeto proxy.

Constructores

SyncFolderItemsType()

El SyncFolderItemsType constructor inicializa una nueva instancia de la SyncFolderItemsType clase .

Propiedades

Ignore

La Ignore propiedad obtiene o establece una matriz de elementos que se omitirán para la sincronización. Esta propiedad es opcional. Se trata de una propiedad de lectura y escritura.

ItemShape

La ItemShape propiedad obtiene o establece la forma que describe qué propiedades se devuelven en la respuesta. La propiedad es obligatoria. Se trata de una propiedad de lectura y escritura.

MaxChangesReturned

La MaxChangesReturned propiedad obtiene o establece el número máximo de cambios que se pueden devolver en una respuesta de sincronización. La propiedad es obligatoria. Se trata de una propiedad de lectura y escritura.

SyncFolderId

La SyncFolderId propiedad obtiene o establece la identidad de la carpeta que contiene los elementos que se van a sincronizar. La propiedad es obligatoria. Se trata de una propiedad de lectura y escritura.

SyncScope

La SyncScope propiedad obtiene o establece uno de los SyncFolderItemsScopeType valores de enumeración que especifica si solo se devuelven elementos o elementos y la información asociada a la carpeta en una respuesta de sincronización.

SyncScopeSpecified

La SyncScopeSpecified propiedad obtiene o establece un valor booleano que especifica si la SyncScope propiedad se serializa en la solicitud SOAP. Esta propiedad es necesaria si se especifica la SyncScope propiedad .

SyncState

La SyncState propiedad obtiene o establece el identificador de estado de sincronización. Esta propiedad es opcional con advertencias. Se trata de una propiedad de lectura y escritura.

Se aplica a