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