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 olarakmdPrivateScope
bayrak 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
veyaMemberDef
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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin