Udostępnij za pośrednictwem


IMetaDataEmit::DefineImportMember — Metoda

Tworzy odwołanie do określonego elementu członkowskiego typu lub modułu zdefiniowanego poza bieżącym zakresem i definiuje token dla tego odwołania.

Składnia

HRESULT DefineImportMember (
    [in]  IMetaDataAssemblyImport  *pAssemImport,
    [in]  const void               *pbHashValue,
    [in]  ULONG                    cbHashValue,  
    [in]  IMetaDataImport          *pImport,
    [in]  mdToken                  mbMember,
    [in]  IMetaDataAssemblyEmit    *pAssemEmit,
    [in]  mdToken                  tkParent,
    [out] mdMemberRef              *pmr
);  

Parametry

pAssemImport
[w] Interfejs IMetaDataAssemblyImport , który reprezentuje zestaw, z którego jest importowany element członkowski docelowy.

pbHashValue
[w] Tablica zawierająca skrót zestawu określonego przez pAssemImport.

cbHashValue
[w] Liczba bajtów w tablicy pbHashValue .

pImport
[w] Interfejs IMetaDataImport , który reprezentuje zakres metadanych, z którego jest importowany element członkowski docelowy.

mbMember
[w] Token metadanych określający element członkowski docelowy. Token może być tokenem mdMethodDef (dla metody składowej), mdProperty (dla właściwości elementu członkowskiego) lub mdFieldDef (dla pola członkowskiego).

pAssemEmit
[w] Interfejs IMetaDataAssemblyEmit reprezentujący zestaw, do którego jest importowany element członkowski docelowy.

tkParent
[w] Token mdTypeRef lub mdModuleRef dla typu lub modułu, odpowiednio, który jest właścicielem elementu członkowskiego docelowego.

pmr
[out] mdMemberRef Token zdefiniowany w bieżącym zakresie odwołania do elementu członkowskiego.

Uwagi

Metoda DefineImportMember wyszukuje element członkowski określony przez mbMemberelement , który jest zdefiniowany w innym zakresie określonym przez pImport, i pobiera jego właściwości. Te informacje są używane do wywoływania metody IMetaDataEmit::D efineMemberRef w bieżącym zakresie w celu utworzenia odwołania do elementu członkowskiego.

Ogólnie rzecz biorąc, przed użyciem DefineImportMember metody należy utworzyć w bieżącym zakresie odwołanie do typu lub odwołanie modułu dla nadrzędnej klasy, interfejsu lub modułu elementu członkowskiego docelowego. Token metadanych dla tego odwołania jest następnie przekazywany w argumencie tkParent . Nie musisz tworzyć odwołania do elementu nadrzędnego elementu docelowego, jeśli zostanie on rozwiązany później przez kompilator lub konsolidator. Podsumowując:

  • Jeśli element docelowy jest polem lub metodą, użyj metody IMetaDataEmit::D efineTypeRefByName lub IMetaDataEmit::D efineImportType , aby utworzyć odwołanie typu w bieżącym zakresie dla nadrzędnej klasy lub interfejsu nadrzędnego elementu członkowskiego.

  • Jeśli element docelowy jest zmienną globalną lub funkcją globalną (czyli nie elementem członkowskim klasy lub interfejsu), użyj metody IMetaDataEmit::D efineModuleRef , aby utworzyć odwołanie do modułu w bieżącym zakresie dla modułu nadrzędnego elementu członkowskiego.

  • Jeśli element nadrzędny elementu docelowego zostanie rozwiązany później przez kompilator lub konsolidator, przekaż mdTokenNil polecenie tkParent. Jedynym scenariuszem, w którym ma to zastosowanie, jest importowanie funkcji globalnej lub zmiennej globalnej z pliku obj, który ostatecznie zostanie połączony z bieżącym modułem i scalone metadane.

Wymagania

Platformy: Zobacz Wymagania systemowe.

Nagłówka: Cor.h

Biblioteki: Używane jako zasób w MSCorEE.dll

wersje .NET Framework: dostępne od wersji 1.0

Zobacz też