ComContractElement.UserDefinedTypes Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Hizmet sözleşmesine dahil edilecek Kullanıcı Tanımlı Türler (UDT) koleksiyonunu alır. Bu sınıf devralınamaz.
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
Özellik Değeri
Kullanıcı Tanımlı Türler (UDT) koleksiyonu.
- Öznitelikler
Örnekler
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" 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>
öğesinin <userDefinedType> öznitelikleri aşağıdaki gibi tanımlanır:
typeName: Okunabilir tür adını sağlayan isteğe bağlı bir öznitelik. Bu çalışma zamanı tarafından kullanılmaz, ancak okuyucunun türleri ayırt etmesine yardımcı olur.typeLibID: Türü tanımlayan kayıtlı tür kitaplığını belirten bir GUID dizesi.typeLibVersion: Türü tanımlayan tür kitaplığı sürümünü belirten bir dize.typeDefID: Kayıtlı tür kitaplığındaki belirli UDT türünü belirten bir GUID dizesi.
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.
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.