Eigenschaften und erweiterte Eigenschaften in EWS in Exchange

Informationen zum Definieren von und Zugreifen auf Eigenschaften von Elementen und Ordnern mit EWS in Exchange.

Ein Exchange-Postfach enthält eine große Anzahl von Elementen, einschließlich E-Mails, Terminen, Besprechungen usw. Diese Elemente bestehen aus Eigenschaften; die Eigenschaften beschreiben die Elemente. Sie können Elementeigenschaften zum Ausführen einer Suche, Synchronisieren von Elementänderungen und Erstellen von benutzerdefinierten Eigenschaftentypenverwenden. Dieser Artikel enthält eine Übersicht über die Eigenschaften und deren Funktionsweise mit Eigenschaften in Ihrer Anwendung.

Exchange-Elementeigenschaften

Elemente und Ordner in Exchange bestehen im Wesentlichen aus Zeilen in Tabellen. Die wichtigste Eigenschaft eines Elements oder Ordners ist der EWS-Bezeichner. Zwar gibt es andere Bezeichner-bezogene Eigenschaften in der Exchange-Datenbank, der EWS-Bezeichner fungiert für EWS jedoch als Primärschlüssel für die Sammlung von Eigenschaften, die ein Element beschreiben. Die EWS-Bezeichnereigenschaft besteht aus zwei Teilen:

  • Eine ItemId- oder FolderId-Eigenschaft, die das Element identifiziert.

  • Eine ChangeKey-Eigenschaft, die Statusinformationen dazu enthält, ob Änderungen an einem Element oder Ordner vorgenommen wurden.

Alle Elemente in einem Postfach werden in derselben Exchange-Datenbank gespeichert und verwenden dasselbe Datenbankschema. Elemente sind durch eine Kombination aus ItemClass-Eigenschaft, Eigenschaftsbeschränkungen und Geschäftslogikschichten gekennzeichnet, die deren Verwaltung im Exchange-Speicher beeinflusst. In Tabelle 1 wird dargestellt, wie Eigenschaften über verschiedene Elementtypen hinweg angewendet werden. In diesem Beispiel handelt es sich um E-Mail- und Terminelemente. Beide Elemente verfügen über einen Wert für die Subject-Eigenschaft. Beachten Sie jedoch, dass die IsAllDayEvent-Eigenschaft für das E-Mail-Element und die IsReadReceiptRequested-Eigenschaft für das Terminelement nicht festgelegt sind. Glücklicherweise müssen Sie nicht wissen, welche Eigenschaften für welche Elementklasse anwendbar sind; EWS übernimmt dies.

Tabelle 1. Vergleich von Termin- und E-Mail-Eigenschaften

Elementtyp Elementklasse Betreff IsAllDayEvent IsReadReceiptRequested
E-Mail
IPM.Note
Statusbericht: Projekt X abgeschlossen
NULL
true
Termin
IPM.Appointment
Contoso-Unternehmenssitzung
False
NULL

Das EWS-Schema unterstützt viele der Einschränkungen, die von der Exchange-Datenbank und den Geschäftslogikebenen zwischen EWS und der Exchange-Datenbank verwaltet werden. Das EWS-Schema wendet einen definierten Satz von Eigenschaften auf jeden Elementtyp an. Im Folgenden sind die stark typisierten Exchange-Datenbankelemente aufgeführt, die von EWS bereitgestellt werden:

  • E-Mails

  • Termine

  • Kontakte

  • Verteilerlisten

  • Besprechungsnachrichten

  • Besprechungsanfragen

  • Besprechungsantworten

  • Besprechungsabsagen

  • Aufgaben

  • Bereitstellungselemente

Generische Elemente werden von EWS als E-Mails zurückgegeben. Die EWS Managed API implementiert alle diese Elementtypen.

Hinweis

Antwortobjekte werden nur vom Client an den Server als Antwort auf die von anderen Personen empfangenen Elemente gesendet. Sie sind nicht in der Exchange-Datenbank vorhanden.

Was sind Eigenschaften in EWS?

Das EWS-Schema beschreibt die Daten, die zwischen einem EWS-Client und Exchange gesendet werden. Ein großer Teil des Schemas beschreibt die Element- und Ordnereigenschaften, auf die Sie in der Exchange-Datenbank zugreifen können. Das EWS-Schema beschreibt die XML-Darstellung der Exchange-Datenbankeigenschaften, die in Ihrer Anwendung verfügbar sind. Die tatsächlichen Eigenschaften variieren im Hinblick auf die verfügbaren Eigenschaften, die Form und die Rückgabewerte je nachdem, was Sie tun. Die Body-Eigenschaft z. B. gibt nur die ersten 512 Zeichen in einem FindItem-Vorgang zurück, der GetItem-Vorgang gibt jedoch den vollständigen Text des Elements zurück. Obwohl die meisten Eigenschaften festgelegt und abgerufen werden können, werden einige Eigenschaften nur von Exchange festgelegt. Jede Eigenschaft weist im Schema ein XML-Format auf, das die Eigenschaft so widerspiegelt, wie sie in der Exchange-Datenbank gespeichert ist, oder wie sie anhand der in der Exchange-Datenbank gespeicherten Eigenschaften berechnet wurde. Die Subject-Eigenschaft stellt ein Beispiel für eine Eigenschaft dar, die festgelegt werden kann; die UnreadCount-Eigenschaft eines Ordners stellt ein Beispiel für eine berechnete Eigenschaft dar. Eine Kerngruppe von Eigenschaften haben die Kernelementtypen gemeinsam.

Die folgenden Faktoren bestimmen die festgelegte Eigenschaft, die Ihre Anwendung von Exchange abruft:

  • Der Vorgang, den die Anwendung aufruft

  • Das Basisshape der Antwort

  • Der Elementtyp

  • Die angegebenen Eigenschaftspfade

Es ist wichtig zu wissen, wie diese verschiedenen Faktoren die Daten beeinflussen, auf die Sie zugreifen können. Wie in dem weiter oben erwähnten Beispiel der Body-Eigenschaft, ist die Verfügbarkeit einiger Informationen von verschiedenen Faktoren abhängig. Wenn Sie mit diesen Faktoren vertraut sind, können Sie durch die Auswahl der richtigen Optionen zum Zugreifen auf die gewünschten Informationen Zeit sparen. Zur Ermittlung der Eigenschaften, auf die zugegriffen werden kann, müssen Sie diese Faktoren testen, um festzustellen, wie Sie auf die von Ihrer Anwendung benötigten Eigenschaften zugreifen müssen. In diesem Abschnitt wird beschrieben, wie sich diese verschiedenen Faktoren darauf auswirken, welche Eigenschaften in EWS-Antworten zurückgegeben werden.

EWS-Antwortshapes

Exchange speichert eine Vielzahl an Informationen über die Elemente. In manchen Fällen werden nicht alle Informationen für Ihre Anwendung benötigt, manchmal wird sogar empfohlen, nicht alle Informationen abzurufen. EWS-Antwortshapes, auch Eigenschaftsshapes genannt, geben an, welche Eigenschaften vom Server zurückgegeben werden. Das Kernelement des Antwortshapes ist das Basisshape. Beim Basisshape handelt es sich um einen standardmäßig voreingestellten Eigenschaftenbehälter für stark typisierte Elemente. Die Entsprechung des Basisshapes in der EWS Managed API ist BasePropertySet. EWS umfasst drei standardmäßige Antwortshapes.

Tabelle 2. Standardmäßige Antwortshapes

Name des standardmäßigen Antwortshapes Entsprechung in der verwalteten EWS-API Beschreibung
IdOnly
BasePropertySet.IdOnly-Wert
Es werden nur der EWS-Bezeichner und der Änderungsschlüssel zurückgegeben. Verwenden Sie, wenn der Client nicht alle vom AllProperties- oder Standardshape zurückgegebenen Eigenschaften verwendet, das IdOnly-Shape, und geben Sie weitere Eigenschaften unter Verwendung der Eigenschaftspfade in der PropertySet-Klasse an. Die meisten Anwendungen verwenden das IdOnly-Antwortshape mit zusätzlichen Eigenschaften. Dies reduziert den Umfang der nicht verwendeter Daten, die von Clients angefordert werden.
Standard

Ein Satz von Standardeigenschaften für den Elementtyp. Verwenden Sie dieses Antwort-Shape nur, wenn Ihre Anwendung alle Eigenschaften verwendet.
AllProperties
BasePropertySet.FirstClassProperties-Wert
Eine größere Gruppe von Eigenschaften als das Standardshape. Auch wenn der Name dies andeutet, gibt diese Option nicht alle Eigenschaften eines Elements zurück. Dieser Eigenschaftensatz gibt die Eigenschaften zurück, die am häufigsten von Clientanwendungen verwendeten werden. Wenn Sie weitere Eigenschaften benötigen, können Sie diese durch den entsprechenden Eigenschaftspfad anfordern.
Verwendet Ihre Anwendung nicht alle mit diesem Antwortshape zurückgegebenen Eigenschaften, verwenden Sie das IdOnly-Antwortshape mit zusätzlichen Eigenschaften.

Viele EWS-Vorgänge geben Elemente und die zugehörigen Eigenschaften zurück. Unabhängig vom angegebenen Antwortshape, können unterschiedliche Vorgänge unterschiedliche Eigenschaftensätze zurückgeben. Unterschiedliche Elementtypen geben je nach Vorgang und festgelegtem Antwortshape unterschiedliche Eigenschaften zurück. Die folgenden Vorgänge verwenden Antwortshapes, um die zurückzugebenden Eigenschaften zu identifizieren.

Tabelle 3. Vorgänge, die Antwortshapes verwenden

EWS-Vorgang Von EWS verwaltete API-Methode
GetConversationItems
ExchangeService.GetConversationItems-Methode
GetFolder
Folder.Bind-Methode
GetItem
Item.Bind-Methode
ExchangeService.BindToItems-Methode
FindConversation
ExchangeService.FindConversation-Methode
FindFolder
Folder.FindFolders-Methode
ExchangeService.FindFolders-Methode
FindItem
Folder.FindItems-Methode
ExchangeService.FindItems-Methode
FindPeople
Nicht implementiert.
ResolveNames
ExchangeService.ResolveNames-Methode
SearchMailboxes
ExchangeService.SearchMailboxes-Methode
ExchangeService.BeginSearchMailboxes-Methode
SyncFolderHierarchy
ExchangeService.SyncFolderHierarchy-Methode
SyncFolderItems
ExchangeService.SyncFolderItems-Methode

Eigenschaftshapes stellen eine elementare Methode dar, um die Eigenschaften zu identifizieren, die Ihre Anwendung zurückgeben soll. In manchen Fällen benötigt Ihre Anwendung jedoch einen begrenzten Satz bestimmter Eigenschaften. Zu diesem Zweck können Sie den Eigenschaftspfad verwenden.

Wählen von Eigenschaften anhand des entsprechenden Eigenschaftspfads

Bei einem EWS-Eigenschaftspfad handelt es sich um Metadaten, die zum Identifizieren von Eigenschaften in einer Anforderung oder Antwort verwendet werden.

Tabelle 4. Typen von Eigenschaftspfaden

Typ des Eigenschaftspfads Schematyp Implementierung der verwalteten EWS-API Beschreibung
FieldUri
PathToUnindexedFieldType
Typen, die von ServiceObjectSchema erben.
Der am häufigsten verwendete Eigenschaftspfad. FieldUri-Eigenschaftspfade werden in einem PropertySet-Objekt in der verwalteten EWS-API angegeben. Die meisten EWS-Eigenschaften können mit dem FieldUri-Eigenschaftspfad angegeben werden. Dies wird durch das UnindexedFieldURIType-Objekt im EWS-Schema beschrieben.
Der XML-Code des FieldUri-Eigenschaftspfad sieht wie folgt aus:
XML<FieldURI FieldURI="item:Subject"/>Dieser Eigenschaftspfad entspricht dem ItemSchema.Subject in der verwalteten EWS-API.
IndexedFieldUri
PathToIndexedFieldType
Typen, die von ItemSchema erben.
Identifiziert Wörterbucheigenschaften, die einen Eigenschaftenindex erfordern, um den zurückzugebenden Wert anzugeben. Verwenden Sie diesen Pfad, wenn eine Eigenschaft mehr als einen Wert enthalten kann. Dies wird von der DictionaryURIType-Eigenschaft im EWS-Schema beschrieben. DictionaryURIType-Eigenschaftspfade werden in einem PropertySet-Objekt in der verwalteten EWS-API angegeben.
Der XML-Code des IndexedFieldUri-Eigenschaftspfad sieht wie folgt aus:
XML<IndexedFieldURI FieldURI="contacts:PhysicalAddress:Street FieldIndex="Home"/>
ExtendedFieldUri
PathToExtendedFieldType
ExtendedPropertyDefinition
Gibt eine erweiterte Eigenschaftsdefinition an, die benutzerdefinierte oder nicht schematisierte Eigenschaften von Elementen identifiziert.
Der XML-Code des ExtendedFieldUri-Eigenschaftspfad sieht wie folgt aus:
XML<ExtendedFieldURI> PropertyTag="0x1234" PropertyType="Integer" />
ExceptionFieldUri
ExceptionFieldURI
ServiceResponse
Gibt die Eigenschaften an, die einem Fehler in einer EWS-Antwort zugeordnet sind. Dies wird vom ExceptionPropertyURIType-Typ im EWS-Schema beschrieben. Dieser Fehler tritt nur im MessageXml-Element der Fehlerantworten auf, die beim Arbeiten mit Kalenderserienmustern auftreten.

Verwenden Sie als bewährte Methode beim Anfordern von Eigenschaften das IdOnly-Basisshape (BasePropertySet.IdOnly in der verwalteten EWS-API), und fordern Sie dann nur die Eigenschaften durch Angeben der Eigenschaftspfade an, die Ihre Anwendung benötigt.

Schematisierte Eigenschaften

Die meisten Eigenschaften, die Ihr EWS-Client benötigt, werden durch das EWS-beschrieben. Die primären Ordner- und Elementtypdefinitionen, die die Eigenschaftsdefinitionen enthalten, sind im Schema „types.xsd“ enthalten. Die folgenden Schematypen enthalten die Eigenschaftsdefinitionen für die meisten Objekte, die Sie verwenden können.

Tabelle 5. Schematypen, die Eigenschaftsdefinitionen enthalten

EWS-Schematyp Typentsprechung in der verwalteten EWS-API Definiert...
ItemType
Elementklasse
den Eigenschaftensatz für den Basiselementtyp. Dieser Typ kann von einem Client erstellt werden, wird jedoch nie von Exchange zurückgegeben. Exchange gibt ein MessageType-Objekt für alle generische Objekte zurück.
MessageType
EmailMessage-Klasse
den Eigenschaftensatz für das E-Mail-Objekt und alle generischen Objekte.
CalendarItemType
Appointment-Klasse
den Eigenschaftensatz für den Kalenderelementtyp. Dies umfasst einzelne und wiederkehrende Termine.
ContactItemType
Contact-Klasse
den Eigenschaftensatz für das Kontaktelement.
DistributionListType
ContactGroup-Klasse
den Eigenschaftensatz für die persönliche Verteilerliste.
MeetingMessageType
MeetingMessage-Klasse
den Eigenschaftensatz für den Besprechungsnachrichttyp.
MeetingRequestMessageType
MeetingRequest-Klasse
den Eigenschaftensatz für den Besprechungsanfragentyp.
MeetingResponseMessageType
MeetingResponse-Klasse
den Eigenschaftensatz für den Besprechungsantworttyp.
MeetingCancellationMessageType
MeetingCancellation-Klasse
den Eigenschaftensatz für den Besprechungsabsagentyp.
TaskType
Task-Klasse
den Eigenschaftensatz für den Aufgabentyp.
PostItemType
PostItem-Klasse
den Eigenschaftensatz für den Bereitstellungselementtyp.
FolderType
Folder-Klasse
den Eigenschaftensatz für den Ordnertyp.
CalendarFolderType
CalendarFolder-Klasse
den Eigenschaftensatz für den SearchFolder-Typ.
ContactsFolderType
ContactsFolder-Klasse
den Eigenschaftensatz für den ContactsFolder-Typ.
SearchFolderType
SearchFolder-Klasse
den Eigenschaftensatz für den SearchFolder-Typ.
TasksFolderType
TasksFolder-Klasse
den Eigenschaftensatz für den TaskFolder-Typ.
UserConfigurationType
UserConfiguration-Klasse
den Eigenschaftensatz für den UserConfiguration-Typ.

Die Eigenschaften im EWS-Schema sind für viele Anwendungen ausreichend. Manche Szenarien können jedoch nicht ausschließlich unter Verwendung dessen, was im Schema beschrieben ist, implementiert werden. Für diese Szenarien können Sie erweiterte Eigenschaften verwenden.

Erweiterte Eigenschaften (auch nicht schematisierte Eigenschaften genannt)

Mit erweiterten Eigenschaften können Sie benutzerdefinierte Eigenschaften erstellen, mit denen Sie auf Elemente und Ordner im Exchange-Speicher zugreifen können, die nicht im EWS-Schema definiert sind. Sie können sie zum Zugreifen auf die Eigenschaften des systemeigenen MAPI-Elements und Ordnereigenschaften in der Exchange-Datenbank verwenden. Mit erweiterten Eigenschaften ist der Zugriff auf alle schematisierten Eigenschaften möglich, da diese schematisierten Eigenschaften nichts Anderes als MAPI-Eigenschaften in der Exchange-Datenbank sind.

Der PathToExtendedFieldType-Schematyp im types.xsd-Schema definiert den XML-Code, der eine erweiterte Eigenschaft darstellt. Dieser Schematyp definiert das ExtendedFieldURI-Element in XML-Instanzen; in anderen Worten, er definiert den XML-Code, der zwischen dem Dienst und dem Client gesendet wird. Der ExtendedPropertyType-Schematyp definiert das ExtendedFieldURI-Element und den Wert oder Array von Werten, den eine erweiterte Eigenschaft enthält. Die folgende Tabelle zeigt die ungefähre Zuordnung des XML-Codes der erweiterten Eigenschaften und die zugehörige Implementierung in Elementen in der EWS Managed API.

Tabelle 6. Implementierung des XML-Codes der erweiterten Eigenschaften in der EWS Managed API

Implementierung der verwalteten EWS-API Inhalt Zuordnung
Item.ExtendedProperties-Eigenschaft
Eine Sammlung erweiterter Eigenschaften eines Elements.
Wird einer oder mehreren Instanzen von erweiterten Eigenschaften eines Elements zugeordnet.
ExtendedProperty-Eigenschaft
Die Definition und Werte der erweiterten Eigenschaft.
Wird dem ExtendedPropertyType-Schematyp zugeordnet.
ExtendedPropertyDefinition-Eigenschaft
Die Definition einer erweiterten Eigenschaft.
Wird dem PathToExtendedFieldType-Schematyp zugeordnet.

Weitere Informationen zum Verwenden erweiterter Eigenschaften in Ihrer Anwendung finden Sie in den folgenden Codebeispielen:

Inhalt dieses Abschnitts

Siehe auch