ComContractElement.UserDefinedTypes Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá kolekci uživatelem definované typy (UDT), která má být zahrnuta do servisní smlouvy. Tuto třídu nelze dědit.
public:
property System::ServiceModel::Configuration::ComUdtElementCollection ^ UserDefinedTypes { System::ServiceModel::Configuration::ComUdtElementCollection ^ get(); };
[System.Configuration.ConfigurationProperty("userDefinedTypes")]
public System.ServiceModel.Configuration.ComUdtElementCollection UserDefinedTypes { get; }
[<System.Configuration.ConfigurationProperty("userDefinedTypes")>]
member this.UserDefinedTypes : System.ServiceModel.Configuration.ComUdtElementCollection
Public ReadOnly Property UserDefinedTypes As ComUdtElementCollection
Hodnota vlastnosti
Kolekce uživatelsky definovaných typů (UDT).
- Atributy
Příklady
Následující příklad ukazuje přidání dvou konkrétních UDT do <userDefinedTypes>
části konfiguračního souboru pro tento účel.
<comContracts>
<comContract contract="{5163B1E7-F0CF-4B6A-9A02-4AB654F34284}"
namespace="http://tempuri.org/5163B1E7-F0CF-4B6A-9A02-4AB654F34284"
name="_Broker" requiresSession="true">
<userDefinedTypes>
<userDefinedType name="CustomerType"
typeLibID="{91DC728C-4F1A-45de-A9B6-B538E209CEA6}"
typeLibVersion="1.0"
typeDefID="{D129765C-F211-434e-825A-9A63198C41F2}" />
<userDefinedType name="AddressType"
typeLibID="{91DC728C-4F1A-45de-A9B6-B538E209CEA6}"
typeLibVersion="1.0"
typeDefID="{4616AE0D-687A-43B7-BC63-141AE3DFD099}" />
</userDefinedTypes>
<exposedMethods>
<add exposedMethod ="BuyStock" />
<add exposedMethod ="SellStock" />
<add exposedMethod ="ExecuteTransaction" />
</exposedMethods>
</comContract>
</comContracts>
Atributy elementu <userDefinedType>
jsou definovány takto:
typeName
: Volitelný atribut, který poskytuje čitelný název typu. Modul runtime tuto možnost nepoužívá, ale pomáhá čtenáři rozlišovat typy.typeLibID
: Řetězec GUID, který určuje registrovanou knihovnu typů, která definuje typ.typeLibVersion
: Řetězec, který určuje verzi knihovny typů, která definuje typ.typeDefID
: Řetězec GUID, který určuje konkrétní typ UDT v registrované knihovně typů.
Při inicializaci služby vyhledá prostředí Integration Runtime zadané typy a přidá je do kolekce známých typů pro zadané kontrakty.
Poznámky
Prostředí COM+ Integration Runtime vytváří služby kontrolou knihovny typů. Pokud komponenta MODELU COM+ obsahuje metody, které předávají variantu, systém nemůže určit skutečné typy, které mají být předány před modulem runtime. Proto při pokusu o předání uživatelem definovaný typ (UDT) v rámci VARIANT, selže, protože to není známý typ pro serializaci.
Chcete-li tento problém obejít, můžete přidat UDT do konfiguračního souboru, aby mohly být zahrnuty jako známé typy v příslušné servisní smlouvě. Abyste to mohli udělat, musíte jednoznačně identifikovat UDT a kontrakty, tj. původní rozhraní MODELU COM, která ho používají.