Tür eşdeğerliği ve katıştırılmış birlikte çalışma türleri

.NET Framework 4'ten başlayarak, ortak dil çalışma zamanı, com türleri için tür bilgilerini doğrudan yönetilen derlemelere eklemeyi destekler; bunun yerine, yönetilen derlemelerin birlikte çalışma derlemelerinden COM türleri için tür bilgilerini almasını gerektirir. Katıştırılmış tür bilgileri yalnızca yönetilen derleme tarafından gerçekten kullanılan türleri ve üyeleri içerdiğinden, iki yönetilen derleme aynı COM türünde çok farklı görünümlere sahip olabilir. Her yönetilen derlemenin, COM türü görünümünü temsil eden farklı Type bir nesnesi vardır. Ortak dil çalışma zamanı arabirimler, yapılar, numaralandırmalar ve temsilciler için bu farklı görünümler arasında tür eşdeğerliğini destekler.

Tür eşdeğerliği, bir yönetilen derlemeden diğerine geçirilen bir COM nesnesinin, alıcı derlemede uygun yönetilen türe geçirilebileceği anlamına gelir.

Not

Tür eşdeğerliği ve katıştırılmış birlikte çalışma türleri, birlikte çalışma derlemelerinin uygulamalarla dağıtılması gerekmediğinden COM bileşenlerini kullanan uygulamaların ve eklentilerin dağıtımını basitleştirir. Paylaşılan COM bileşenlerinin geliştiricileri, bileşenlerinin .NET Framework'ün önceki sürümleri tarafından kullanılmasını istiyorsa birincil birlikte çalışma derlemeleri (PIA) oluşturmaları gerekir.

Tür eşdeğerliği

COM türlerinin eşdeğerliği arabirimler, yapılar, numaralandırmalar ve temsilciler için desteklenir. Aşağıdakilerin tümü doğruysa COM türleri eşdeğer olarak nitelenir:

  • Türler her iki arabirim, her iki yapı ya da her iki numaralandırma ya da her iki temsilcidir.

  • Türler, sonraki bölümde açıklandığı gibi aynı kimliğe sahiptir.

  • Her iki tür de, COM türlerini tür eşdeğerliği için işaretleme bölümünde açıklandığı gibi tür eşdeğerliği için uygundur.

Tür kimliği

Kapsamları ve kimlikleri eşleştiğinde, diğer bir deyişle, her biri özniteliğine sahipse ve iki öznitelik de eşleşen Scope ve Identifier özelliklere sahipse, iki türün TypeIdentifierAttribute aynı kimliğe sahip olduğu belirlenir. için Scope karşılaştırma büyük/küçük harfe duyarlı değildir.

Bir türün TypeIdentifierAttribute özniteliği yoksa veya kapsam ve tanımlayıcı belirtmeyen bir TypeIdentifierAttribute özniteliği varsa, tür yine de eşdeğerlik için aşağıdaki gibi göz önünde bulundurulabilir:

TÜR eşdeğerliği için COM türlerini işaretleme

Bir türü tür eşdeğerliği için uygun olarak iki şekilde işaretleyebilirsiniz:

Ayrıca bkz.