Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Reprezentuje typ zdefiniowany przez użytkownika (UDT), który ma zostać uwzględniony w umowie usługi.
<konfiguracji>
<System.servicemodel>
<comContracts>
<comContract>
<userDefinedTypes>
<Userdefinedtype>
Składnia
<comContracts>
<comContract>
<userDefinedTypes>
<userDefinedType name="String"
typeLibID="String"
typeLibVersion="String"
typeDefID="String">
</userDefinedType>
</userDefinedTypes>
</comContract>
</comContracts>
Atrybuty i elementy
W poniższych sekcjach opisano atrybuty, elementy podrzędne i elementy nadrzędne.
Attributes
| Attribute | Description |
|---|---|
name |
Opcjonalny atrybut zawierający ciąg, który zapewnia czytelną nazwę typu. Nie jest on używany przez środowisko uruchomieniowe, ale ułatwia czytelnikowi odróżnienie typów. |
TypeDefID |
Ciąg identyfikatora GUID identyfikujący określony typ UDT w bibliotece zarejestrowanych typów. |
TypeLibID |
Ciąg identyfikatora GUID identyfikujący zarejestrowaną bibliotekę typów, która definiuje typ. |
TypeLibVersion |
Ciąg identyfikujący wersję biblioteki typów definiujący typ. |
Elementy podrzędne
Żaden.
Elementy nadrzędne
| Składnik | Description |
|---|---|
userDefinedTypes |
Kolekcja userDefinedType elementów. |
Uwagi
Środowisko COM+ Integration Runtime tworzy usługi, sprawdzając bibliotekę typów. Gdy składnik COM+ zawiera metody, które przechodzą wariant, system nie może określić rzeczywistych typów, które mają być przekazywane przed środowiskiem uruchomieniowym. W związku z tym próba przekazania typu zdefiniowanego przez użytkownika (UDT) w ramach wariantu kończy się niepowodzeniem, ponieważ nie jest to znany typ serializacji.
Aby obejść ten problem, możesz dodać identyfikatory ZDEFINIOWANE do pliku konfiguracji, aby można je było uwzględnić jako znane typy w odpowiednim kontrakcie usługi. Aby to zrobić, należy jednoznacznie zidentyfikować udT i kontrakty, czyli oryginalne interfejsy COM, które go używają.
W poniższym przykładzie pokazano dodanie dwóch określonych tras zdefiniowanych przez użytkownika do <userDefinedTypes> sekcji pliku konfiguracji w tym celu.
<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>
Po zainicjowaniu usługi środowisko Integration Runtime wyszukuje określone typy i dodaje je do znanej kolekcji typów dla określonych kontraktów.