Aracılığıyla paylaş


<userDefinedType>

Hizmet sözleşmesine dahil edilecek Kullanıcı Tanımlı Türü (UDT) temsil eder.

<Yapılandırma>
  <system.serviceModel>
    <comContracts>
      <comContract>
        <userDefinedTypes>
          <userDefinedType>

Syntax

<comContracts>
  <comContract>
    <userDefinedTypes>
      <userDefinedType name="String"
                       typeLibID="String"
                       typeLibVersion="String"
                       typeDefID="String">
      </userDefinedType>
    </userDefinedTypes>
  </comContract>
</comContracts>

Öznitelikler ve Öğeler

Öznitelikler, alt ve üst öğeler aşağıdaki bölümlerde açıklanmaktadır.

Öznitelikler

Öznitelik Açıklama
name Okunabilir tür adını sağlayan bir dize içeren isteğe bağlı bir öznitelik. Bu çalışma zamanı tarafından kullanılmaz, ancak okuyucunun türleri ayırt etmesine yardımcı olur.
TypeDefID Kayıtlı tür kitaplığındaki belirli UDT türünü tanımlayan bir GUID dizesi.
TypeLibID Türü tanımlayan kayıtlı tür kitaplığını tanımlayan bir GUID dizesi.
TypeLibVersion Türü tanımlayan tür kitaplığı sürümünü tanımlayan bir dize.

Alt Öğeler

Yok.

Üst Öğeler

Öğe Açıklama
userDefinedTypes Öğe koleksiyonu userDefinedType .

Açıklamalar

COM+ tümleştirme çalışma zamanı, tür kitaplığını inceleyerek hizmetler oluşturur. BIR COM+ bileşeni VARIANT geçiren yöntemler içerdiğinde, sistem çalışma zamanından önce geçirilecek gerçek türleri belirleyemez. Bu nedenle, bir VARIANT içinde Kullanıcı Tanımlı Tür (UDT) geçirmeyi denediğinizde, serileştirme için bilinen bir tür olmadığından başarısız olur.

Bu sorunu aşmak için UDT'leri yapılandırma dosyasına ekleyerek uygun hizmet sözleşmesine bilinen türler olarak eklenebilmesini sağlayabilirsiniz. Bunu yapmak için UDT'yi ve sözleşmeleri, yani bunu kullanan özgün COM arabirimlerini benzersiz olarak tanımlamanız gerekir.

Aşağıdaki örnekte, bu amaçla yapılandırma dosyasının <userDefinedTypes> bölümüne iki belirli UDT eklenmesi gösterilmektedir.

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

Hizmet başlatıldığında, tümleştirme çalışma zamanı belirtilen türleri arar ve bunları belirtilen sözleşmeler için bilinen türler koleksiyonuna ekler.

Ayrıca bkz.