FieldInfo Класс

Определение

Обнаруживает атрибуты поля и предоставляет доступ к метаданным поля.

public ref class FieldInfo abstract : System::Reflection::MemberInfo
public ref class FieldInfo abstract : System::Reflection::MemberInfo, System::Runtime::InteropServices::_FieldInfo
public abstract class FieldInfo : System.Reflection.MemberInfo
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Serializable]
public abstract class FieldInfo : System.Reflection.MemberInfo, System.Runtime.InteropServices._FieldInfo
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class FieldInfo : System.Reflection.MemberInfo, System.Runtime.InteropServices._FieldInfo
type FieldInfo = class
    inherit MemberInfo
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Serializable>]
type FieldInfo = class
    inherit MemberInfo
    interface _FieldInfo
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type FieldInfo = class
    inherit MemberInfo
    interface _FieldInfo
Public MustInherit Class FieldInfo
Inherits MemberInfo
Public MustInherit Class FieldInfo
Inherits MemberInfo
Implements _FieldInfo
Наследование
FieldInfo
Производный
Атрибуты
Реализации

Примеры

В следующем примере метод используется Type.GetFields для получения сведений, связанных с полем, из FieldInfo класса, а затем отображает атрибуты поля.

using System;
using System.Reflection;

public class FieldInfoClass
{
    public int myField1 = 0;
    protected string myField2 = null;
    public static void Main()
    {
        FieldInfo[] myFieldInfo;
        Type myType = typeof(FieldInfoClass);
        // Get the type and fields of FieldInfoClass.
        myFieldInfo = myType.GetFields(BindingFlags.NonPublic | BindingFlags.Instance
            | BindingFlags.Public);
        Console.WriteLine("\nThe fields of " +
            "FieldInfoClass are \n");
        // Display the field information of FieldInfoClass.
        for(int i = 0; i < myFieldInfo.Length; i++)
        {
            Console.WriteLine("\nName            : {0}", myFieldInfo[i].Name);
            Console.WriteLine("Declaring Type  : {0}", myFieldInfo[i].DeclaringType);
            Console.WriteLine("IsPublic        : {0}", myFieldInfo[i].IsPublic);
            Console.WriteLine("MemberType      : {0}", myFieldInfo[i].MemberType);
            Console.WriteLine("FieldType       : {0}", myFieldInfo[i].FieldType);
            Console.WriteLine("IsFamily        : {0}", myFieldInfo[i].IsFamily);
        }
    }
}
Imports System.Reflection

Public Class FieldInfoClass
    Public myField1 As Integer = 0
    Protected myField2 As String = Nothing

    Public Shared Sub Main()
        Dim myFieldInfo() As FieldInfo
        Dim myType As Type = GetType(FieldInfoClass)
        ' Get the type and fields of FieldInfoClass.
        myFieldInfo = myType.GetFields(BindingFlags.NonPublic Or _
                      BindingFlags.Instance Or BindingFlags.Public)
        Console.WriteLine(ControlChars.NewLine & "The fields of " & _
                      "FieldInfoClass class are " & ControlChars.NewLine)
        ' Display the field information of FieldInfoClass.
        Dim i As Integer
        For i = 0 To myFieldInfo.Length - 1
            Console.WriteLine(ControlChars.NewLine + "Name            : {0}", myFieldInfo(i).Name)
            Console.WriteLine("Declaring Type  : {0}", myFieldInfo(i).DeclaringType)
            Console.WriteLine("IsPublic        : {0}", myFieldInfo(i).IsPublic)
            Console.WriteLine("MemberType      : {0}", myFieldInfo(i).MemberType)
            Console.WriteLine("FieldType       : {0}", myFieldInfo(i).FieldType)
            Console.WriteLine("IsFamily        : {0}", myFieldInfo(i).IsFamily)
        Next i
    End Sub
End Class

Комментарии

Сведения о поле получены из метаданных. У FieldInfo класса нет общедоступного конструктора. FieldInfo объекты получаются путем вызова GetFields объекта или GetField метода Type .

Поля — это переменные, определенные в классе. FieldInfo предоставляет доступ к метаданным для поля в классе и предоставляет динамический набор и получение функциональных возможностей для поля. Класс не загружается в память, пока не вызывается или получает вызов объекта.

Примечания для тех, кто реализует этот метод

При наследовании FieldInfoот , необходимо переопределить следующие члены: GetValue(Object) и SetValue(Object, Object, BindingFlags, Binder, CultureInfo).

Конструкторы

Имя Описание
FieldInfo()

Инициализирует новый экземпляр класса FieldInfo.

Свойства

Имя Описание
Attributes

Возвращает атрибуты, связанные с этим полем.

CustomAttributes

Возвращает коллекцию, содержащую настраиваемые атрибуты этого члена.

(Унаследовано от MemberInfo)
DeclaringType

Возвращает класс, объявляющий этот член.

(Унаследовано от MemberInfo)
FieldHandle

RuntimeFieldHandleВозвращает дескриптор для представления внутренних метаданных поля.

FieldType

Возвращает тип объекта поля.

IsAssembly

Возвращает значение, указывающее, описывается ли потенциальное видимость этого поля Assembly; то есть поле отображается в большинстве других типов в той же сборке и не отображается производным типам за пределами сборки.

IsCollectible

Возвращает значение, указывающее, ссылается ли этот MemberInfo объект на одну или несколько сборок, содержащихся в коллекционируемых AssemblyLoadContextобъектах.

(Унаследовано от MemberInfo)
IsFamily

Возвращает значение, указывающее, описывается Familyли видимость этого поля; то есть поле отображается только в его классе и производных классах.

IsFamilyAndAssembly

Получает значение, указывающее, описывается FamANDAssemли видимость этого поля; то есть поле может быть доступно из производных классов, но только если они находятся в одной сборке.

IsFamilyOrAssembly

Получает значение, указывающее, описывается FamORAssemли потенциальное видимость этого поля; то есть поле может быть доступно производными классами, где бы они ни находились, и классами в одной сборке.

IsInitOnly

Возвращает значение, указывающее, можно ли задать поле только в тексте конструктора.

IsLiteral

Возвращает значение, указывающее, записывается ли значение во время компиляции и не может быть изменено.

IsNotSerialized
Устаревшие..

Возвращает значение, указывающее, имеет NotSerialized ли это поле атрибут.

IsPinvokeImpl

Возвращает значение, указывающее, задан PinvokeImplли соответствующий FieldAttributes атрибут.

IsPrivate

Возвращает значение, указывающее, является ли поле частным.

IsPublic

Возвращает значение, указывающее, является ли поле общедоступным.

IsSecurityCritical

Возвращает значение, указывающее, является ли текущее поле критически важным или безопасным для безопасности на текущем уровне доверия.

IsSecuritySafeCritical

Возвращает значение, указывающее, является ли текущее поле безопасным для безопасности критически важным для текущего уровня доверия.

IsSecurityTransparent

Возвращает значение, указывающее, является ли текущее поле прозрачным на текущем уровне доверия.

IsSpecialName

Возвращает значение, указывающее, задан ли соответствующий SpecialName атрибут в перечислителе FieldAttributes .

IsStatic

Возвращает значение, указывающее, является ли поле статическим.

MemberType

MemberTypes Возвращает значение, указывающее, что этот элемент является полем.

MetadataToken

Возвращает значение, определяющее элемент метаданных.

(Унаследовано от MemberInfo)
Module

Возвращает модуль, в котором определяется тип, объявляющий элемент, представленный текущим MemberInfo .

(Унаследовано от MemberInfo)
Name

Возвращает имя текущего элемента.

(Унаследовано от MemberInfo)
ReflectedType

Возвращает объект класса, используемый для получения этого экземпляра MemberInfo.

(Унаследовано от MemberInfo)

Методы

Имя Описание
Equals(Object)

Возвращает значение, указывающее, равен ли этот экземпляр указанному объекту.

GetCustomAttributes(Boolean)

При переопределении в производном классе возвращает массив всех пользовательских атрибутов, примененных к этому элементу.

(Унаследовано от MemberInfo)
GetCustomAttributes(Type, Boolean)

При переопределении в производном классе возвращает массив пользовательских атрибутов, применяемых к этому элементу, и определяется с помощью Type.

(Унаследовано от MemberInfo)
GetCustomAttributesData()

Возвращает список CustomAttributeData объектов, представляющих данные о атрибутах, примененных к целевому элементу.

(Унаследовано от MemberInfo)
GetFieldFromHandle(RuntimeFieldHandle, RuntimeTypeHandle)

FieldInfo Возвращает поле, представленное указанным дескриптором, для указанного универсального типа.

GetFieldFromHandle(RuntimeFieldHandle)

FieldInfo Возвращает поле, представленное указанным дескриптором.

GetHashCode()

Возвращает хэш-код для этого экземпляра.

GetModifiedFieldType()

Возвращает измененный тип объекта поля.

GetOptionalCustomModifiers()

Возвращает массив типов, определяющих необязательные настраиваемые модификаторы поля.

GetRawConstantValue()

Возвращает литеральное значение, связанное с полем компилятором.

GetRequiredCustomModifiers()

Возвращает массив типов, определяющих необходимые настраиваемые модификаторы свойства.

GetType()

Обнаруживает атрибуты поля класса и предоставляет доступ к метаданным поля.

GetValue(Object)

При переопределении в производном классе возвращает значение поля, поддерживаемого заданным объектом.

GetValueDirect(TypedReference)

Возвращает значение поля, поддерживаемого заданным объектом.

HasSameMetadataDefinitionAs(MemberInfo)

Обнаруживает атрибуты поля и предоставляет доступ к метаданным поля.

(Унаследовано от MemberInfo)
IsDefined(Type, Boolean)

При переопределении в производном классе указывает, применяется ли к этому члену один или несколько атрибутов указанного типа или производных типов.

(Унаследовано от MemberInfo)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
SetValue(Object, Object, BindingFlags, Binder, CultureInfo)

При переопределении в производном классе задает значение поля, поддерживаемого заданным объектом.

SetValue(Object, Object)

Задает значение поля, поддерживаемого заданным объектом.

SetValueDirect(TypedReference, Object)

Задает значение поля, поддерживаемого заданным объектом.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Операторы

Имя Описание
Equality(FieldInfo, FieldInfo)

Указывает, равны ли два FieldInfo объекта.

Inequality(FieldInfo, FieldInfo)

Указывает, равны ли два FieldInfo объекта.

Явные реализации интерфейса

Имя Описание
_FieldInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.

_FieldInfo.GetType()

Type Возвращает объект, FieldInfo представляющий тип.

_FieldInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Возвращает сведения о типе объекта, которые затем могут использоваться для получения сведений о типе интерфейса.

_FieldInfo.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).

_FieldInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Предоставляет доступ к свойствам и методам, предоставляемым объектом.

_MemberInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.

(Унаследовано от MemberInfo)
_MemberInfo.GetType()

Type Возвращает объект, MemberInfo представляющий класс.

(Унаследовано от MemberInfo)
_MemberInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Возвращает сведения о типе объекта, которые затем могут использоваться для получения сведений о типе интерфейса.

(Унаследовано от MemberInfo)
_MemberInfo.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).

(Унаследовано от MemberInfo)
_MemberInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Предоставляет доступ к свойствам и методам, предоставляемым объектом.

(Унаследовано от MemberInfo)
ICustomAttributeProvider.GetCustomAttributes(Boolean)

Возвращает массив всех пользовательских атрибутов, определенных для этого элемента, за исключением именованных атрибутов или пустого массива, если нет пользовательских атрибутов.

(Унаследовано от MemberInfo)
ICustomAttributeProvider.GetCustomAttributes(Type, Boolean)

Возвращает массив пользовательских атрибутов, определенных на этом элементе, определяемый по типу или пустой массив, если пользовательские атрибуты этого типа отсутствуют.

(Унаследовано от MemberInfo)
ICustomAttributeProvider.IsDefined(Type, Boolean)

Указывает, определен ли один или несколько экземпляров attributeType этого элемента.

(Унаследовано от MemberInfo)

Методы расширения

Имя Описание
GetCustomAttribute(MemberInfo, Type, Boolean)

Извлекает настраиваемый атрибут указанного типа, применяемого к указанному элементу, и при необходимости проверяет предки этого элемента.

GetCustomAttribute(MemberInfo, Type)

Извлекает настраиваемый атрибут указанного типа, применяемого к указанному элементу.

GetCustomAttribute<T>(MemberInfo, Boolean)

Извлекает настраиваемый атрибут указанного типа, применяемого к указанному элементу, и при необходимости проверяет предки этого элемента.

GetCustomAttribute<T>(MemberInfo)

Извлекает настраиваемый атрибут указанного типа, применяемого к указанному элементу.

GetCustomAttributes(MemberInfo, Boolean)

Извлекает коллекцию настраиваемых атрибутов, применяемых к указанному элементу, и при необходимости проверяет предки этого элемента.

GetCustomAttributes(MemberInfo, Type, Boolean)

Извлекает коллекцию настраиваемых атрибутов указанного типа, применяемого к указанному элементу, и при необходимости проверяет предки этого элемента.

GetCustomAttributes(MemberInfo, Type)

Извлекает коллекцию настраиваемых атрибутов указанного типа, применяемого к указанному элементу.

GetCustomAttributes(MemberInfo)

Извлекает коллекцию настраиваемых атрибутов, применяемых к указанному элементу.

GetCustomAttributes<T>(MemberInfo, Boolean)

Извлекает коллекцию настраиваемых атрибутов указанного типа, применяемого к указанному элементу, и при необходимости проверяет предки этого элемента.

GetCustomAttributes<T>(MemberInfo)

Извлекает коллекцию настраиваемых атрибутов указанного типа, применяемого к указанному элементу.

GetMetadataToken(MemberInfo)

Возвращает маркер метаданных для данного члена, если он доступен.

HasMetadataToken(MemberInfo)

Возвращает значение, указывающее, доступен ли маркер метаданных для указанного элемента.

IsDefined(MemberInfo, Type, Boolean)

Указывает, применяются ли пользовательские атрибуты указанного типа к указанному элементу и, при необходимости, применяются к его предкам.

IsDefined(MemberInfo, Type)

Указывает, применяются ли пользовательские атрибуты указанного типа к указанному элементу.

Применяется к

Потокобезопасность

Этот тип является потокобезопасной.

См. также раздел