Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Создает ссылку на указанный элемент типа или модуля, определенного вне текущей области, и определяет маркер для этой ссылки.
Syntax
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
);
Parameters
pAssemImport [in] Интерфейс IMetaDataAssemblyImport , представляющий сборку, из которой импортируется целевой элемент.
pbHashValue [in] Массив, содержащий хэш для сборки, указанной pAssemImport.
cbHashValue [in] Количество байтов в массиве pbHashValue .
pImport [in] Интерфейс IMetaDataImport , представляющий область метаданных, из которой импортируется целевой элемент.
mbMember [in] Маркер метаданных, указывающий целевой элемент. Маркер может быть маркером mdMethodDef (для метода члена), mdProperty (для свойства члена) или mdFieldDef (для поля члена).
pAssemEmit [in] Интерфейс IMetaDataAssemblyEmit , представляющий сборку, в которую импортируется целевой элемент.
tkParent[in] mdModuleRef Маркер mdTypeRef типа или модуля соответственно, принадлежащий целевому элементу.
pmr [out] Маркер mdMemberRef , определенный в текущей области для ссылки на член.
Remarks
Метод DefineImportMember ищет элемент, указанный mbMemberв другой области, указанной в другой области, и pImportизвлекает его свойства. Эта информация используется для вызова метода IMetaDataEmit::D efineMemberRef в текущей области для создания ссылки на член.
Как правило, перед использованием DefineImportMember метода необходимо создать в текущей области ссылку на тип или ссылку на модуль для родительского класса, интерфейса или модуля целевого члена. Затем маркер метаданных для этой ссылки передается в tkParent аргументе. Если он будет разрешен компилятором или компоновщиком, вам не нужно создать ссылку на родительский элемент целевого элемента. To summarize:
Если целевой элемент является полем или методом, используйте метод IMetaDataEmit::D efineTypeRefByName или метод IMetaDataEmit::D efineImportType для создания ссылки на тип в текущей области для родительского класса или родительского интерфейса члена.
Если целевой член является глобальной переменной или глобальной функцией (то есть не членом класса или интерфейса), используйте метод IMetaDataEmit::D efineModuleRef для создания ссылки на модуль в текущей области для родительского модуля члена.
Если родительский элемент целевого элемента будет разрешен позже компилятором или компоновщиком, то передайте
mdTokenNilегоtkParent. Единственный сценарий, в котором это применимо, заключается в том, что глобальная функция или глобальная переменная импортируются из файла .obj, который в конечном итоге будет связан с текущим модулем и объединенными метаданными.
Requirements
Платформ: См. сведения о поддерживаемых операционных системах .NET.
Header: Cor.h
Library: CorGuids.lib