Aracılığıyla paylaş


IMetaDataEmit::MergeEnd Method

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

Syntax

HRESULT MergeEnd ();

Parameters

Bu yöntem parametre almaz.

Remarks

Bu yordam, çağrısından önce tarafından belirtilen tüm içeri aktarma kapsamlarının meta verilerin geçerli çıkış kapsamına gerçek birleştirilmesini IMetaDataEmit::Mergetetikler.

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ış değildir. Ancak, modül özellikleri geçerli kapsamda ayarlanmamışsa, bunlar ilk kez 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 hiçbir yinelenen öğe birleştirilmemiştir. TypeDef nesneleri, her tam nesne adı + GUID + sürüm numarasına göre yinelenen öğeler için denetlenmektedir. 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 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 bayrak eklenmiş ü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; ilgili 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 bağlı oldukları öğ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.

Requirements

Platform: Bkz. .NET tarafından desteklenen işletim sistemleri.

Header: Cor.h

Library: CorGuids.lib

See also