Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Создает ссылку на указанный элемент типа или модуля, определенного вне текущей области, и определяет маркер для этой ссылки.
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