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