Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Stellt einen benutzerdefinierten Typ (User Defined Type, UDT) dar, der im Dienstvertrag enthalten sein soll.
<Konfiguration>
<system.serviceModel>
<comContracts>
<comContract>
<userDefinedTypes>
<Userdefinedtype>
Syntax
<comContracts>
<comContract>
<userDefinedTypes>
<userDefinedType name="String"
typeLibID="String"
typeLibVersion="String"
typeDefID="String">
</userDefinedType>
</userDefinedTypes>
</comContract>
</comContracts>
Attribute und Elemente
In den folgenden Abschnitten werden Attribute sowie untergeordnete und übergeordnete Elemente beschrieben.
Attribute
| Merkmal | Description |
|---|---|
name |
Ein optionales Attribut, das eine Zeichenfolge enthält, die den lesbaren Typnamen bereitstellt. Dies wird nicht von der Laufzeit verwendet, sondern hilft einem Leser, die Typen zu unterscheiden. |
TypeDefID |
Eine GUID-Zeichenfolge, die den spezifischen UDT-Typ innerhalb der registrierten Typbibliothek identifiziert. |
TypeLibID |
Eine GUID-Zeichenfolge, die die registrierte Typbibliothek identifiziert, die den Typ definiert. |
TypeLibVersion |
Eine Zeichenfolge, die die Typbibliotheksversion identifiziert, die den Typ definiert. |
Untergeordnete Elemente
Keiner.
Übergeordnete Elemente
| Element | Description |
|---|---|
userDefinedTypes |
Eine Sammlung von userDefinedType Elementen. |
Bemerkungen
Die COM+-Integrationslaufzeit erstellt Dienste durch Prüfen der Typbibliothek. Wenn eine COM+-Komponente Methoden enthält, die einen VARIANT übergeben, kann das System die tatsächlichen Typen nicht ermitteln, die vor der Laufzeit übergeben werden sollen. Wenn Sie daher versuchen, einen benutzerdefinierten Typ (User Defined Type, UDT) innerhalb einer VARIANT-Datei zu übergeben, schlägt er fehl, da es sich nicht um einen bekannten Typ für die Serialisierung handelt.
Um dieses Problem zu umgehen, können Sie die UDTs der Konfigurationsdatei hinzufügen, sodass sie als bekannte Typen im entsprechenden Dienstvertrag eingeschlossen werden können. Um dies zu tun, müssen Sie die UDT und die Verträge eindeutig identifizieren, d. h. die ursprünglichen COM-Schnittstellen, die sie verwenden.
Das folgende Beispiel veranschaulicht das Hinzufügen von zwei spezifischen UDTs zum <userDefinedTypes> Abschnitt der Konfigurationsdatei zu diesem Zweck.
<comContracts>
<comContract contract="{5163B1E7-F0CF-4B6A-9A02-4AB654F34284}"
namespace="http://tempuri.org/5163B1E7-F0CF-4B6A-9A02-4AB654F34284"
name="_Broker"
requireSession="true">
<userDefinedTypes>
<userDefinedType name="CustomerType"
typeLibID="{91DC728C-4F1A-45de-A9B6-B538E209CEA6}"
typeLibVersion="1.0"
typeDefID="{D129765C-F211-434e-825A-9A63198C41F2}">
</userDefinedType>
<userDefinedType name="AddressType"
typeLibID="{91DC728C-4F1A-45de-A9B6-B538E209CEA6}"
typeLibVersion="1.0"
typeDefID="{4616AE0D-687A-43B7-BC63-141AE3DFD099}">
</userDefinedType>
</userDefinedTypes>
<exposedMethods>
<exposedMethod name="BuyStock" />
<exposedMethod name="SellStock" />
<exposedMethod name="ExecuteTransaction" />
</exposedMethods>
</comContract>
</comContracts>
Wenn der Dienst initialisiert wird, sucht die Integrationslaufzeit nach den angegebenen Typen und fügt sie der bekannten Typenauflistung für die angegebenen Verträge hinzu.