Freigeben über


SyncFolderHierarchyType Klasse

Definition

Die SyncFolderHierarchyType -Klasse stellt eine Anforderung zum Synchronisieren einer Clientordnerhierarchie mit dem Computer dar, auf dem Microsoft Exchange Server 2007 ausgeführt wird.

public ref class SyncFolderHierarchyType : ExchangeWebServices::BaseRequestType
public class SyncFolderHierarchyType : ExchangeWebServices.BaseRequestType
Public Class SyncFolderHierarchyType
Inherits BaseRequestType
Vererbung
SyncFolderHierarchyType

Beispiele

Das folgende Beispiel zeigt, wie Sie eine Ordnerhierarchie synchronisieren. Da die SyncState -Eigenschaft festgelegt ist, wurde diese Ordnerhierarchie zuvor synchronisiert. Dieser SyncFolderHierarchy-Vorgang gibt alle Änderungen zurück, die seit dem Synchronisierungsaufruf vorgenommen wurden, der durch die SyncState -Eigenschaft dargestellt wird. Dieser Aufruf gibt alle Eigenschaften zurück, die von der AllProperties Ordnerform definiert werden.

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

Die SyncState in der Antwort zurückgegebene Eigenschaft sollte für spätere Synchronisierungsanforderungen gespeichert werden. Beachten Sie außerdem, dass die in der Antwort zurückgegebenen Ordner in den entsprechenden Ordnertyp umgewandelt werden müssen, damit die Clientanwendung auf alle Eigenschaften zugreifen kann, die für jeden Ordnertyp verfügbar sind.

Wichtig: Wenn Updates zurückgegeben werden, muss die Clientanwendung den Unterschied zwischen den Ordnern in der Antwort und auf dem Client vergleichen, um zu ermitteln, welche Änderungen aufgetreten sind.

Da nicht alle Änderungsobjekte denselben Basistyp aufweisen, wird ein Objektarray zurückgegeben.

Hinweise

Verwenden Sie das Proxyobjekt, um die SyncFolderItemsType Elemente in den einzelnen Ordnern zu synchronisieren.

Konstruktoren

SyncFolderHierarchyType()

Der SyncFolderHierarchyType Konstruktor initialisiert eine neue Instanz der SyncFolderHierarchyType -Klasse.

Eigenschaften

FolderShape

Die FolderShape -Eigenschaft ruft das Synchronisierungsordner-Shape ab, das beschreibt, welche Eigenschaften in der Antwort zurückgegeben werden, oder legt diese fest. Diese Eigenschaft ist erforderlich. Dies ist eine Lese-/Schreibeigenschaft.

SyncFolderId

Die SyncFolderId -Eigenschaft ruft die Identität des Ordners ab, der die zu synchronisierenden Elemente enthält, oder legt diese fest. Diese Eigenschaft ist optional. Dies ist eine Lese-/Schreibeigenschaft.

SyncState

Die SyncState -Eigenschaft ruft den Synchronisierungszustandsbezeichner ab oder legt sie fest. Diese Eigenschaft ist optional mit Einschränkungen. Dies ist eine Lese-/Schreibeigenschaft.

Gilt für: