Module.ResolveMember Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает тип члена, определенный токеном метаданных.
Перегрузки
ResolveMember(Int32) |
Возвращает тип члена, определенный заданным токеном метаданных. |
ResolveMember(Int32, Type[], Type[]) |
Возвращает тип или член, которые определены заданным токеном метаданных, в контексте, определенном заданными параметрами универсального типа. |
ResolveMember(Int32)
- Исходный код:
- Module.cs
- Исходный код:
- Module.cs
- Исходный код:
- Module.cs
Возвращает тип члена, определенный заданным токеном метаданных.
public:
System::Reflection::MemberInfo ^ ResolveMember(int metadataToken);
public System.Reflection.MemberInfo? ResolveMember (int metadataToken);
public System.Reflection.MemberInfo ResolveMember (int metadataToken);
member this.ResolveMember : int -> System.Reflection.MemberInfo
Public Function ResolveMember (metadataToken As Integer) As MemberInfo
Параметры
- metadataToken
- Int32
токен метаданных, определяющий тип или член в модуле.
Возвращаемое значение
Объект MemberInfo, представляющий тип члена, который определяется заданным токеном метаданных.
Исключения
Параметр metadataToken
не является маркером для типа или члена в области текущего модуля.
-или-
Параметр metadataToken
содержит объект MethodSpec
или TypeSpec
, чья подпись содержит тип элемента var
(параметр типа для универсального типа) или mvar
(параметр типа для универсального метода).
-или-
Параметр metadataToken
определяет свойство или событие.
Параметр metadataToken
не является допустимым маркером для поля в области текущего модуля.
Комментарии
Чтобы разрешить маркер метаданных для MethodSpec
или TypeSpec
, сигнатура которого содержит тип ELEMENT_TYPE_VAR
элемента или ELEMENT_TYPE_MVAR
, используйте перегрузку ResolveMember(Int32, Type[], Type[]) метода, которая позволяет предоставить необходимый контекст. Это значит, что при разрешении маркера метаданных для элемента, зависящее от параметров универсального типа универсального типа и (или) универсального метода, в который внедрен маркер, необходимо использовать перегрузку, позволяющую предоставлять эти параметры типа.
Примечание
Сведения о маркерах метаданных можно найти в документации по общеязыковой инфраструктуре (CLI), в частности в разделе "Раздел II: определение и семантика метаданных". Дополнительные сведения см. в разделе ECMA 335 COMMON Language Infrastructure (CLI).
Код, демонстрирующий разрешение маркеров с помощью универсального контекста (то есть параметров универсального типа универсального типа и (или) универсального метода, в который внедрен маркер), см. в этом методе ResolveMethod(Int32, Type[], Type[]) .
Применяется к
ResolveMember(Int32, Type[], Type[])
- Исходный код:
- Module.cs
- Исходный код:
- Module.cs
- Исходный код:
- Module.cs
Возвращает тип или член, которые определены заданным токеном метаданных, в контексте, определенном заданными параметрами универсального типа.
public:
virtual System::Reflection::MemberInfo ^ ResolveMember(int metadataToken, cli::array <Type ^> ^ genericTypeArguments, cli::array <Type ^> ^ genericMethodArguments);
public:
System::Reflection::MemberInfo ^ ResolveMember(int metadataToken, cli::array <Type ^> ^ genericTypeArguments, cli::array <Type ^> ^ genericMethodArguments);
public virtual System.Reflection.MemberInfo? ResolveMember (int metadataToken, Type[]? genericTypeArguments, Type[]? genericMethodArguments);
public virtual System.Reflection.MemberInfo ResolveMember (int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments);
public System.Reflection.MemberInfo ResolveMember (int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments);
abstract member ResolveMember : int * Type[] * Type[] -> System.Reflection.MemberInfo
override this.ResolveMember : int * Type[] * Type[] -> System.Reflection.MemberInfo
member this.ResolveMember : int * Type[] * Type[] -> System.Reflection.MemberInfo
Public Overridable Function ResolveMember (metadataToken As Integer, genericTypeArguments As Type(), genericMethodArguments As Type()) As MemberInfo
Public Function ResolveMember (metadataToken As Integer, genericTypeArguments As Type(), genericMethodArguments As Type()) As MemberInfo
Параметры
- metadataToken
- Int32
токен метаданных, определяющий тип или член в модуле.
- genericTypeArguments
- Type[]
Массив объектов Type, представляющих аргументы типа для данного типа, если токен находится в области, либо значение null
, если этот тип не является универсальным.
- genericMethodArguments
- Type[]
Массив объектов Type, представляющих аргументы типа для метода, если токен находится в области, либо значение null
, если этот метод не является универсальным.
Возвращаемое значение
Объект MemberInfo, представляющий тип члена, который определяется заданным токеном метаданных.
Исключения
Параметр metadataToken
не является маркером для типа или члена в области текущего модуля.
-или-
Параметр metadataToken
является объектом MethodSpec
или TypeSpec
, подпись которого содержит сведения о типе элемента var
(параметр типа для универсального типа) или mvar
(параметр типа для универсального метода), а для метода genericTypeArguments
или genericMethodArguments
не предоставлены необходимые аргументы типа.
-или-
Параметр metadataToken
определяет свойство или событие.
Параметр metadataToken
не является допустимым маркером для поля в области текущего модуля.
Комментарии
Type.GetGenericArguments Используйте метод для типа , где metadataToken
находится в область, чтобы получить массив аргументов универсального типа для genericTypeArguments
.
MethodInfo.GetGenericArguments Используйте метод в методе , где metadataToken
находится в область, чтобы получить массив аргументов универсального типа для genericTypeArguments
. Всегда безопасно предоставлять эти аргументы, даже если они не нужны.
Примечание
Сведения о маркерах метаданных можно найти в документации по общеязыковой инфраструктуре (CLI), в частности в разделе "Раздел II: определение и семантика метаданных". Дополнительные сведения см. в разделе ECMA 335 COMMON Language Infrastructure (CLI).
Код, демонстрирующий разрешение маркеров с помощью универсального контекста (то есть параметров универсального типа универсального типа и (или) универсального метода, в который внедрен маркер), см. в этом методе ResolveMethod(Int32, Type[], Type[]) .