ComContractElement.UserDefinedTypes Vlastnost

Definice

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í.

Platí pro