Aracılığıyla paylaş


IMetaDataEmit::MergeEnd Yöntemi

Bir veya daha fazla IMetaDataEmit::Merge çağrısı tarafından belirtilen tüm meta veri kapsamlarını geçerli kapsamla birleştirir.

Sözdizimi

HRESULT MergeEnd ();

Parametreler

Bu yöntem parametre almaz.

Açıklamalar

Bu yordam, öğesine yapılan çağrılardan IMetaDataEmit::Mergeönce belirtilen tüm içeri aktarma kapsamlarının geçerli çıkış kapsamına meta verilerin gerçek birleştirilmesini tetikler.

Birleştirme için aşağıdaki özel koşullar geçerlidir:

  • İçeri aktarma kapsamındaki meta veriler için benzersiz olduğundan modül sürümü tanımlayıcısı (MVID) hiçbir zaman içeri aktarılamıyor.

  • Mevcut modül genelindeki özelliklerin üzerine yazılmaz.

    Geçerli kapsam için modül özellikleri zaten ayarlanmışsa, hiçbir modül özelliği içeri aktarılmış olmaz. Ancak, modül özellikleri geçerli kapsamda ayarlanmamışsa, ilk karşılaşıldığında yalnızca bir kez içeri aktarılır. Bu modül özellikleriyle yeniden karşılaşılırsa, bunlar yinelenir. Tüm modül özelliklerinin (MVID hariç) değerleri karşılaştırılırsa ve yineleme bulunmazsa bir hata oluşur.

  • Tür tanımları ()TypeDef için geçerli kapsamla birleştirilmiş yineleme yoktur. TypeDef nesneler, her tam nesne adı + GUID + sürüm numarasında yinelenen öğeler için denetleniyor. Ad veya GUID'de bir eşleşme varsa ve diğer iki öğeden herhangi biri farklıysa bir hata oluşur. Aksi takdirde, üç öğe de eşleşirse, MergeEnd girişlerin gerçekten yinelenen olduğundan emin olmak için bir imleç denetimi yapar; aksi takdirde bir hata oluşur. Bu imleç denetimi aşağıdakileri arar:

    • Aynı sırada gerçekleşen aynı üye bildirimleri. olarak mdPrivateScope işaretlenen üyeler (bkz . CorMethodAttr numaralandırması) bu denetime dahil değildir; bunlar özel olarak birleştirilir.

    • Aynı sınıf düzeni.

    Bu, bir TypeDef nesnenin bildirildiği her meta veri kapsamında her zaman tam ve tutarlı bir şekilde tanımlanması gerektiği anlamına gelir; üye uygulamaları (bir sınıf için) birden çok derleme birimine yayılırsa, tam tanımın her kapsam için artımlı değil her kapsamda mevcut olduğu varsayılır. Örneğin, parametre adları sözleşmeyle ilgiliyse, her kapsama aynı şekilde yayılmalıdır; uygun değilse, meta veriye yayılmamalıdır.

    Bunun istisnası, bir TypeDef nesnenin olarak mdPrivateScopebayrak eklenmiş artımlı üyelere sahip olmasıdır. Bunlarla karşılaştığınızda, MergeEnd yinelenenleri dikkate almadan bunları artımlı olarak geçerli kapsama ekler. Derleyici özel kapsamı anladığı için, kuralları zorlamaktan derleyicinin sorumlu olması gerekir.

  • Göreli sanal adresler (RVA' lar) içeri aktarılmaz veya birleştirilmemiştir; derleyicisinin bu bilgileri yeniden yaydığı beklenir.

  • Özel öznitelikler yalnızca eklendikleri öğe birleştirildiğinde birleştirilir. Örneğin, bir sınıfla ilişkilendirilmiş özel öznitelikler, sınıfla ilk karşılaşıldığında birleştirilir. Özel öznitelikler derleme birimine özgü bir TypeDef veya MemberDef ile ilişkilendirilmişse (örneğin, bir üye derlemesinin zaman damgası), bunlar birleştirilmemiştir ve bu meta verileri kaldırmak veya güncelleştirmek derleyiciye bağlı olur.

Gereksinimler

Platform: Bkz. Sistem Gereksinimleri.

Üstbilgi: Cor.h

Kitaplığı: MSCorEE.dll'de kaynak olarak kullanılır

.NET Framework Sürümleri: 1.1 sürümünden itibaren kullanılabilir

Ayrıca bkz.